manager->get_control( $setting->id )->choices; return ( array_key_exists( $input, $choices ) ? $input : $setting->default ); } /** * Sanitize URLs */ function acoustics_sanitize_urls( $input ) { if ( strpos( $input, ',' ) !== false) { $input = explode( ',', $input ); } if ( is_array( $input ) ) { foreach ($input as $key => $value) { $input[$key] = esc_url_raw( $value ); } $input = implode( ',', $input ); } else { $input = esc_url_raw( $input ); } return $input; } /** * Sanitize hex and rgba */ function acoustics_sanitize_hex_rgba( $input, $setting ) { if ( empty( $input ) || is_array( $input ) ) { return $setting->default; } if ( false === strpos( $input, 'rgb' ) ) { $input = sanitize_hex_color( $input ); } else { if ( false === strpos( $input, 'rgba' ) ) { // Sanitize as RGB color $input = str_replace( ' ', '', $input ); sscanf( $input, 'rgb(%d,%d,%d)', $red, $green, $blue ); $input = 'rgb(' . acoustics_range( $red, 0, 255 ) . ',' . acoustics_range( $green, 0, 255 ) . ',' . acoustics_range( $blue, 0, 255 ) . ')'; } else { // Sanitize as RGBa color $input = str_replace( ' ', '', $input ); sscanf( $input, 'rgba(%d,%d,%d,%f)', $red, $green, $blue, $alpha ); $input = 'rgba(' . acoustics_range( $red, 0, 255 ) . ',' . acoustics_range( $green, 0, 255 ) . ',' . acoustics_range( $blue, 0, 255 ) . ',' . acoustics_range( $alpha, 0, 1 ) . ')'; } } return $input; } /** * Helper function to check if value is in range */ function acoustics_range( $input, $min, $max ){ if ( $input < $min ) { $input = $min; } if ( $input > $max ) { $input = $max; } return $input; } /** * Sanitize checkboxes */ function acoustics_sanitize_checkbox( $input ) { if ( $input == 1 ) { return 1; } else { return ''; } } /** * Sanitize fonts */ function acoustics_google_fonts_sanitize( $input ) { $val = json_decode( $input, true ); if( is_array( $val ) ) { foreach ( $val as $key => $value ) { $val[$key] = sanitize_text_field( $value ); } $input = json_encode( $val ); } else { $input = json_encode( sanitize_text_field( $val ) ); } return $input; } /** * Sanitize Meta */ function acoustics_sanitize_archive_meta_components( $input ){ $input = (array) $input; $sanitized = array(); foreach ( $input as $sub_value ) { if ( in_array( $sub_value, array( 'date', 'author' ), true ) ) { $sanitized[] = $sub_value; } } return $sanitized; } /** * Sanitize Single Meta */ function acoustics_sanitize_single_meta_components( $input ){ $input = (array) $input; $sanitized = array(); foreach ( $input as $sub_value ) { if ( in_array( $sub_value, array( 'date', 'author', 'comments' ), true ) ) { $sanitized[] = $sub_value; } } return $sanitized; }