manager->get_control( $setting->id )->choices; //return input if valid or return default option return ( array_key_exists( $input, $choices ) ? $input : $setting->default ); } /* * Checkbox sanitization function */ function beetan_sanitize_boolean( $value ) { $filter = filter_var( $value, FILTER_VALIDATE_BOOLEAN ); return is_null( $filter ) ? false : $filter; } /* * None sanitization function */ function beetan_sanitize_none( $value ) { return $value; } /* * Default Customizer Variable Array */ function beetan_setup_customizer_preset_variables() { return array( 'primary_color' => array( 'default' => '#29B475' ), 'text_color' => array( 'default' => '#343a40' ), 'heading_color' => array( 'default' => '#16252d' ), 'sub_heading_color' => array( 'default' => '#16252d' ), 'link_color' => array( 'default' => '#343a40' ), 'link_hover_color' => array( 'default' => '#29B475' ) ); } /* * Customizer Preset CSS */ if ( ! function_exists( 'beetan_get_customizer_preset_css' ) ) { function beetan_get_customizer_preset_css( $colors ) { ob_start(); beetan_get_template( 'inc/css-variables.php', $colors ); $css = str_ireplace( array( '' ), '', ob_get_clean() ); return apply_filters( 'beetan_get_customizer_preset_css', $css ); } } /* * Return Single preset value */ function beetan_get_customizer_preset_variable( $variable ) { $preset_variables = beetan_setup_customizer_preset_variables(); $default = $preset_variables[ $variable ]['default']; return get_theme_mod( $variable, $default ); } /* * Return customizer preset option value for root CSS */ function beetan_get_customizer_preset_variables() { $variables = array(); foreach ( array_keys( beetan_setup_customizer_preset_variables() ) as $value ) { $variables[ $value ] = beetan_get_customizer_preset_variable( $value ); } return $variables; } /* * Enqueue Root CSS variable */ if ( ! function_exists( 'beetan_color_preset_css' ) ) { function beetan_color_preset_css() { $variables = beetan_get_customizer_preset_variables(); $stylesheet = beetan_get_customizer_preset_css( $variables ); wp_add_inline_style( 'beetan-style', $stylesheet ); } } add_action( 'wp_enqueue_scripts', 'beetan_color_preset_css', 12 ); /** * Binds JS handlers to make Theme Customizer preview reload changes asynchronously. */ if ( ! function_exists( 'beetan_customize_preview_js' ) ) { function beetan_customize_preview_js() { $suffix = defined( 'SCRIPT_DEBUG' ) && SCRIPT_DEBUG ? '' : '.min'; wp_enqueue_script( 'beetan-customizer-preview', esc_url( get_theme_file_uri( "/assets/js/customizer-preview{$suffix}.js" ) ), array( 'customize-preview' ), beetan_assets_version( "/assets/js/customizer-preview{$suffix}.js" ), true ); } } add_action( 'customize_preview_init', 'beetan_customize_preview_js' ); /* * Customize Controls Scripts */ if ( ! function_exists( 'beetan_customize_controls_enqueue_scripts' ) ) { function beetan_customize_controls_enqueue_scripts() { $suffix = defined( 'SCRIPT_DEBUG' ) && SCRIPT_DEBUG ? '' : '.min'; wp_enqueue_script( 'customizer', esc_url( get_theme_file_uri( "/assets/js/customizer{$suffix}.js" ) ), array( 'customize-controls', 'underscore' ), beetan_assets_version( "/assets/js/customizer{$suffix}.js" ), true ); } } add_action( 'customize_controls_enqueue_scripts', 'beetan_customize_controls_enqueue_scripts' );