add_section( 'pf_colors' , array( 'title' => esc_url_e('Color Scheme', 'premium_finesse'), 'priority' => 30, ) ); $wp_customize->add_section( 'pf_sections_order', array( 'title' => esc_url_e('Site Layout', 'premium_finesse'), 'priority' => 40 ) ); $wp_customize->add_section( 'pf_borders', array( 'title' => esc_url_e('Site Borders', 'premium_finesse'), 'priority' => 50 ) ); $wp_customize->add_section( 'pf_header_image', array( 'title' => esc_url_e('Site Header Image', 'premium_finesse'), 'priority' => 60 ) ); /* SETTINGS */ $wp_customize->add_setting('background_color' , array( 'default' => '#770a27', 'transport' => 'postMessage', 'sanitize_callback' => 'sanitize_hex_color' ) ); $wp_customize->add_setting('text_color' , array( 'default' => '#2d0028', 'transport' => 'postMessage', 'sanitize_callback' => 'sanitize_hex_color' ) ); $wp_customize->add_setting('title_text_color' , array( 'default' => '#ffe5eb', 'transport' => 'postMessage', 'sanitize_callback' => 'sanitize_hex_color' ) ); $wp_customize->add_setting('border_color' , array( 'default' => '#99935a', 'transport' => 'postMessage', 'sanitize_callback' => 'sanitize_hex_color' ) ); $wp_customize->add_setting('change_order_content' , array( 'default' => '1', 'transport' => 'postMessage', 'sanitize_callback' => 'pf_sanitize_radio' ) ); $wp_customize->add_setting('change_order_crossbeam' , array( 'default' => '2', 'transport' => 'postMessage', 'sanitize_callback' => 'pf_sanitize_radio' ) ); $wp_customize->add_setting('change_order_grid' , array( 'default' => '3', 'transport' => 'postMessage', 'sanitize_callback' => 'pf_sanitize_radio' ) ); $wp_customize->add_setting('toggle_site_description_border' , array( 'default' => 'solid', 'transport' => 'postMessage', 'sanitize_callback' => 'pf_sanitize_radio' ) ); $wp_customize->add_setting('toggle_site_title_border' , array( 'default' => 'solid', 'transport' => 'postMessage', 'sanitize_callback' => 'pf_sanitize_radio' ) ); $wp_customize->add_setting('toggle_site_content_border' , array( 'default' => 'solid', 'transport' => 'postMessage', 'sanitize_callback' => 'pf_sanitize_radio' ) ); $wp_customize->add_setting('toggle_sidebar_border' , array( 'default' => 'solid', 'transport' => 'postMessage', 'sanitize_callback' => 'pf_sanitize_radio' ) ); /* SANITATION FUNCTIONS */ //file input sanitization function function pf_sanitize_file( $file, $setting ) { //allowed file types $mimes = array( 'jpg|jpeg|jpe' => 'image/jpeg', 'gif' => 'image/gif', 'png' => 'image/png' ); //check file type from file name $file_ext = wp_check_filetype( $file, $mimes ); //if file has a valid mime type return it, otherwise return default return ( $file_ext['ext'] ? $file : $setting->default ); } $wp_customize->add_setting('background_photo' , array( 'default' => pf_sanitize_file(get_template_directory_uri() . '/assets/images/rose.png'), 'transport' => 'postMessage', 'sanitize_callback' => 'pf_sanitize_file' ) ); //radio box sanitization function function pf_sanitize_radio( $input, $setting ){ //input must be a slug: lowercase alphanumeric characters, dashes and underscores are allowed only $input = sanitize_key($input); //get the list of possible radio box options $choices = $setting->manager->get_control( $setting->id )->choices; //return input if valid or return default option return ( array_key_exists( $input, $choices ) ? $input : $setting->default ); } /* CONTROLS */ $wp_customize->add_control( new WP_Customize_Upload_Control( $wp_customize, 'background_photo', array( 'label' => __( 'Header Background Image', 'premium_finesse' ), 'section' => 'pf_header_image', 'settings' => 'background_photo' ))); $wp_customize->add_control( new WP_Customize_Color_Control($wp_customize, 'background_color', array( 'label' => __( 'Background Color', 'premium_finesse'), 'section' => 'pf_colors', 'settings' => 'background_color', ))); $wp_customize->add_control( new WP_Customize_Color_Control($wp_customize, 'text_color', array( 'label' => __('Text Color', 'premium_finesse'), 'section' => 'pf_colors', 'settings' => 'text_color', ))); $wp_customize->add_control( new WP_Customize_Color_Control($wp_customize, 'title_text_color', array( 'label' => __('Title Text Color', 'premium_finesse'), 'section' => 'pf_colors', 'settings' => 'title_text_color', ))); $wp_customize->add_control( new WP_Customize_Color_Control($wp_customize, 'border_color', array( 'label' => __('Border Color', 'premium_finesse'), 'section' => 'pf_colors', 'settings' => 'border_color', ))); $wp_customize->add_control( new WP_Customize_Control( $wp_customize, 'change_order_content', array( 'label' => __( 'Content Position', 'premium_finesse' ), 'section' => 'pf_sections_order', 'settings' => 'change_order_content', 'type' => 'radio', 'choices' => array( '1' => __( 'First', 'premium_finesse' ), '2' => __( 'Second', 'premium_finesse' ), '3' => __( 'Third', 'premium_finesse' ) )))); $wp_customize->add_control( new WP_Customize_Control( $wp_customize, 'change_order_crossbeam', array( 'label' => __( 'Widget Crossbeam Position', 'premium_finesse' ), 'section' => 'pf_sections_order', 'settings' => 'change_order_crossbeam', 'type' => 'radio', 'choices' => array( '1' => __( 'First', 'premium_finesse' ), '2' => __( 'Second', 'premium_finesse' ), '3' => __( 'Third', 'premium_finesse' ) )))); $wp_customize->add_control( new WP_Customize_Control( $wp_customize, 'change_order_grid', array( 'label' => __( 'Widget Grid Position', 'premium_finesse' ), 'section' => 'pf_sections_order', 'settings' => 'change_order_grid', 'type' => 'radio', 'choices' => array( '1' => __( 'First', 'premium_finesse' ), '2' => __( 'Second', 'premium_finesse' ), '3' => __( 'Third', 'premium_finesse' ) )))); $wp_customize->add_control( new WP_Customize_Control( $wp_customize, 'toggle_site_description_border', array( 'label' => __( 'Site Description Border', 'premium_finesse' ), 'section' => 'pf_borders', 'settings' => 'toggle_site_description_border', 'type' => 'radio', 'choices' => array( 'solid' => __( 'Visible', 'premium_finesse' ), 'none' => __( 'Hidden', 'premium_finesse' ), )))); $wp_customize->add_control( new WP_Customize_Control( $wp_customize, 'toggle_site_title_border', array( 'label' => __( 'Site Title Border', 'premium_finesse' ), 'section' => 'pf_borders', 'settings' => 'toggle_site_title_border', 'type' => 'radio', 'choices' => array( 'solid' => __( 'Visible', 'premium_finesse' ), 'none' => __( 'Hidden', 'premium_finesse' ), )))); $wp_customize->add_control( new WP_Customize_Control( $wp_customize, 'toggle_site_content_border', array( 'label' => __( 'Site Content Borders', 'premium_finesse' ), 'section' => 'pf_borders', 'settings' => 'toggle_site_content_border', 'type' => 'radio', 'choices' => array( 'solid' => __( 'Visible', 'premium_finesse' ), 'none' => __( 'Hidden', 'premium_finesse' ), )))); $wp_customize->add_control( new WP_Customize_Control( $wp_customize, 'toggle_sidebar_border', array( 'label' => __( 'Site Sidebar Borders', 'premium_finesse' ), 'section' => 'pf_borders', 'settings' => 'toggle_sidebar_border', 'type' => 'radio', 'choices' => array( 'solid' => __( 'Visible', 'premium_finesse' ), 'none' => __( 'Hidden', 'premium_finesse' ), )))); /* JS SETTINGS */ $wp_customize->get_setting('text_color')->transport = 'postMessage'; $wp_customize->get_setting('background_color')->transport = 'postMessage'; $wp_customize->get_setting( 'blogname' )->transport = 'postMessage'; $wp_customize->get_setting( 'blogdescription' )->transport = 'postMessage'; } add_action('wp_head', 'cd_customizer_css'); function cd_customizer_css() { ?>