get_setting( 'blogname' )->transport = 'postMessage';
$wp_customize->get_setting( 'blogdescription' )->transport = 'postMessage';
//Selective Refresh
$wp_customize->selective_refresh->add_partial( 'blogname', array(
'selector' => '.logo .site-title a',
'render_callback' => 'appointment_booking_customize_partial_blogname',
));
$wp_customize->selective_refresh->add_partial( 'blogdescription', array(
'selector' => 'p.site-description',
'render_callback' => 'appointment_booking_customize_partial_blogdescription',
));
//add home page setting pannel
$appointment_booking_parent_panel = new Appointment_Booking_WP_Customize_Panel( $wp_customize, 'appointment_booking_panel_id', array(
'capability' => 'edit_theme_options',
'theme_supports' => '',
'title' => esc_html__( 'VW Settings', 'appointment-booking' ),
'priority' => 10,
));
// Layout
$wp_customize->add_section( 'appointment_booking_left_right', array(
'title' => esc_html__( 'General Settings', 'appointment-booking' ),
'panel' => 'appointment_booking_panel_id'
) );
$wp_customize->add_setting('appointment_booking_width_option',array(
'default' => 'Full Width',
'sanitize_callback' => 'appointment_booking_sanitize_choices'
));
$wp_customize->add_control(new Appointment_Booking_Image_Radio_Control($wp_customize, 'appointment_booking_width_option', array(
'type' => 'select',
'label' => esc_html__('Width Layouts','appointment-booking'),
'description' => esc_html__('Here you can change the width layout of Website.','appointment-booking'),
'section' => 'appointment_booking_left_right',
'choices' => array(
'Full Width' => esc_url(get_template_directory_uri()).'/assets/images/full-width.png',
'Wide Width' => esc_url(get_template_directory_uri()).'/assets/images/wide-width.png',
'Boxed' => esc_url(get_template_directory_uri()).'/assets/images/boxed-width.png',
))));
$wp_customize->add_setting('appointment_booking_theme_options',array(
'default' => 'Right Sidebar',
'sanitize_callback' => 'appointment_booking_sanitize_choices'
));
$wp_customize->add_control('appointment_booking_theme_options',array(
'type' => 'select',
'label' => esc_html__('Post Sidebar Layout','appointment-booking'),
'description' => esc_html__('Here you can change the sidebar layout for posts. ','appointment-booking'),
'section' => 'appointment_booking_left_right',
'choices' => array(
'Left Sidebar' => esc_html__('Left Sidebar','appointment-booking'),
'Right Sidebar' => esc_html__('Right Sidebar','appointment-booking'),
'One Column' => esc_html__('One Column','appointment-booking'),
'Three Columns' => esc_html__('Three Columns','appointment-booking'),
'Four Columns' => esc_html__('Four Columns','appointment-booking'),
'Grid Layout' => esc_html__('Grid Layout','appointment-booking')
),
) );
$wp_customize->add_setting('appointment_booking_page_layout',array(
'default' => 'One Column',
'sanitize_callback' => 'appointment_booking_sanitize_choices'
));
$wp_customize->add_control('appointment_booking_page_layout',array(
'type' => 'select',
'label' => esc_html__('Page Sidebar Layout','appointment-booking'),
'description' => esc_html__('Here you can change the sidebar layout for pages. ','appointment-booking'),
'section' => 'appointment_booking_left_right',
'choices' => array(
'Left Sidebar' => esc_html__('Left Sidebar','appointment-booking'),
'Right Sidebar' => esc_html__('Right Sidebar','appointment-booking'),
'One Column' => esc_html__('One Column','appointment-booking')
),
) );
//Selective Refresh
$wp_customize->selective_refresh->add_partial( 'appointment_booking_woocommerce_shop_page_sidebar', array( 'selector' => '.post-type-archive-product #sidebar',
'render_callback' => 'appointment_booking_customize_partial_appointment_booking_woocommerce_shop_page_sidebar', ) );
//Woocommerce Shop Page Sidebar
$wp_customize->add_setting( 'appointment_booking_woocommerce_shop_page_sidebar',array(
'default' => 1,
'transport' => 'refresh',
'sanitize_callback' => 'appointment_booking_switch_sanitization'
) );
$wp_customize->add_control( new Appointment_Booking_Toggle_Switch_Custom_Control( $wp_customize, 'appointment_booking_woocommerce_shop_page_sidebar',array(
'label' => esc_html__( 'Shop Page Sidebar','appointment-booking' ),
'section' => 'appointment_booking_left_right'
)));
//Selective Refresh
$wp_customize->selective_refresh->add_partial( 'appointment_booking_woocommerce_single_product_page_sidebar', array( 'selector' => '.single-product #sidebar',
'render_callback' => 'appointment_booking_customize_partial_appointment_booking_woocommerce_single_product_page_sidebar', ) );
//Woocommerce Single Product page Sidebar
$wp_customize->add_setting( 'appointment_booking_woocommerce_single_product_page_sidebar',array(
'default' => 1,
'transport' => 'refresh',
'sanitize_callback' => 'appointment_booking_switch_sanitization'
) );
$wp_customize->add_control( new Appointment_Booking_Toggle_Switch_Custom_Control( $wp_customize, 'appointment_booking_woocommerce_single_product_page_sidebar',array(
'label' => esc_html__( 'Single Product Sidebar','appointment-booking' ),
'section' => 'appointment_booking_left_right'
)));
//Wow Animation
$wp_customize->add_setting( 'appointment_booking_animation',array(
'default' => 1,
'transport' => 'refresh',
'sanitize_callback' => 'appointment_booking_switch_sanitization'
));
$wp_customize->add_control( new Appointment_Booking_Toggle_Switch_Custom_Control( $wp_customize, 'appointment_booking_animation',array(
'label' => esc_html__( 'Animations','appointment-booking' ),
'description' => __('Here you can disable overall site animation effect','appointment-booking'),
'section' => 'appointment_booking_left_right'
)));
//Pre-Loader
$wp_customize->add_setting( 'appointment_booking_loader_enable',array(
'default' => 0,
'transport' => 'refresh',
'sanitize_callback' => 'appointment_booking_switch_sanitization'
) );
$wp_customize->add_control( new Appointment_Booking_Toggle_Switch_Custom_Control( $wp_customize, 'appointment_booking_loader_enable',array(
'label' => esc_html__( 'Pre-Loader','appointment-booking' ),
'section' => 'appointment_booking_left_right'
)));
$wp_customize->add_setting('appointment_booking_preloader_bg_color', array(
'default' => '#3b82ea',
'sanitize_callback' => 'sanitize_hex_color',
));
$wp_customize->add_control(new WP_Customize_Color_Control($wp_customize, 'appointment_booking_preloader_bg_color', array(
'label' => __('Pre-Loader Background Color', 'appointment-booking'),
'section' => 'appointment_booking_left_right',
)));
$wp_customize->add_setting('appointment_booking_preloader_border_color', array(
'default' => '#ffffff',
'sanitize_callback' => 'sanitize_hex_color',
));
$wp_customize->add_control(new WP_Customize_Color_Control($wp_customize, 'appointment_booking_preloader_border_color', array(
'label' => __('Pre-Loader Border Color', 'appointment-booking'),
'section' => 'appointment_booking_left_right',
)));
//Top Header
$wp_customize->add_section( 'appointment_booking_top_header' , array(
'title' => esc_html__( 'Top Header', 'appointment-booking' ),
'panel' => 'appointment_booking_panel_id'
) );
$wp_customize->add_setting( 'appointment_booking_search_hide_show',array(
'default' => 1,
'transport' => 'refresh',
'sanitize_callback' => 'appointment_booking_switch_sanitization'
));
$wp_customize->add_control( new Appointment_Booking_Toggle_Switch_Custom_Control( $wp_customize, 'appointment_booking_search_hide_show',array(
'label' => esc_html__( 'Show / Hide Search','appointment-booking' ),
'section' => 'appointment_booking_top_header'
)));
$wp_customize->add_setting('appointment_booking_phone_number',array(
'default'=> '',
'sanitize_callback' => 'appointment_booking_sanitize_phone_number'
));
$wp_customize->add_control('appointment_booking_phone_number',array(
'label' => esc_html__('Phone Number','appointment-booking'),
'input_attrs' => array(
'placeholder' => esc_html__( '+00 123 456 7890', 'appointment-booking' ),
),
'section'=> 'appointment_booking_top_header',
'type'=> 'text'
));
$wp_customize->add_setting('appointment_booking_email_address',array(
'default'=> '',
'sanitize_callback' => 'sanitize_email'
));
$wp_customize->add_control('appointment_booking_email_address',array(
'label' => esc_html__('Email Address','appointment-booking'),
'input_attrs' => array(
'placeholder' => esc_html__( 'support@email.com', 'appointment-booking' ),
),
'section'=> 'appointment_booking_top_header',
'type'=> 'text'
));
$wp_customize->add_setting('appointment_booking_navigation_menu_font_size',array(
'default'=> '',
'sanitize_callback' => 'sanitize_text_field'
));
$wp_customize->add_control('appointment_booking_navigation_menu_font_size',array(
'label' => __('Menus Font Size','appointment-booking'),
'description' => __('Enter a value in pixels. Example:20px','appointment-booking'),
'input_attrs' => array(
'placeholder' => __( '10px', 'appointment-booking' ),
),
'section'=> 'appointment_booking_top_header',
'type'=> 'text'
));
$wp_customize->add_setting('appointment_booking_navigation_menu_font_weight',array(
'default' => 'Default',
'transport' => 'refresh',
'sanitize_callback' => 'appointment_booking_sanitize_choices'
));
$wp_customize->add_control('appointment_booking_navigation_menu_font_weight',array(
'type' => 'select',
'label' => __('Menus Font Weight','appointment-booking'),
'section' => 'appointment_booking_top_header',
'choices' => array(
'Default' => __('Default','appointment-booking'),
'Normal' => __('Normal','appointment-booking')
),
) );
$wp_customize->add_setting('appointment_booking_header_menus_color', array(
'default' => '',
'sanitize_callback' => 'sanitize_hex_color',
));
$wp_customize->add_control(new WP_Customize_Color_Control($wp_customize, 'appointment_booking_header_menus_color', array(
'label' => __('Menus Color', 'appointment-booking'),
'section' => 'appointment_booking_top_header',
)));
$wp_customize->add_setting('appointment_booking_header_menus_hover_color', array(
'default' => '',
'sanitize_callback' => 'sanitize_hex_color',
));
$wp_customize->add_control(new WP_Customize_Color_Control($wp_customize, 'appointment_booking_header_menus_hover_color', array(
'label' => __('Menus Hover Color', 'appointment-booking'),
'section' => 'appointment_booking_top_header',
)));
$wp_customize->add_setting('appointment_booking_header_submenus_color', array(
'default' => '',
'sanitize_callback' => 'sanitize_hex_color',
));
$wp_customize->add_control(new WP_Customize_Color_Control($wp_customize, 'appointment_booking_header_submenus_color', array(
'label' => __('Sub Menus Color', 'appointment-booking'),
'section' => 'appointment_booking_top_header',
)));
$wp_customize->add_setting('appointment_booking_header_submenus_hover_color', array(
'default' => '',
'sanitize_callback' => 'sanitize_hex_color',
));
$wp_customize->add_control(new WP_Customize_Color_Control($wp_customize, 'appointment_booking_header_submenus_hover_color', array(
'label' => __('Sub Menus Hover Color', 'appointment-booking'),
'section' => 'appointment_booking_top_header',
)));
//Slider
$wp_customize->add_section( 'appointment_booking_slidersettings' , array(
'title' => esc_html__( 'Slider Settings', 'appointment-booking' ),
'description' => __('Free theme has 3 slides options, For unlimited slides and more options GO PRO','appointment-booking'),
'panel' => 'appointment_booking_panel_id'
) );
//Selective Refresh
$wp_customize->selective_refresh->add_partial('appointment_booking_slider_arrows',array(
'selector' => '#slider .carousel-caption h1',
'render_callback' => 'appointment_booking_customize_partial_appointment_booking_slider_arrows',
));
$wp_customize->add_setting( 'appointment_booking_slider_arrows',array(
'default' => 0,
'transport' => 'refresh',
'sanitize_callback' => 'appointment_booking_switch_sanitization'
));
$wp_customize->add_control( new Appointment_Booking_Toggle_Switch_Custom_Control( $wp_customize, 'appointment_booking_slider_arrows',array(
'label' => esc_html__( 'Show / Hide Slider','appointment-booking' ),
'section' => 'appointment_booking_slidersettings'
)));
for ( $count = 1; $count <= 3; $count++ ) {
$wp_customize->add_setting( 'appointment_booking_slider_page' . $count, array(
'default' => '',
'sanitize_callback' => 'appointment_booking_sanitize_dropdown_pages'
) );
$wp_customize->add_control( 'appointment_booking_slider_page' . $count, array(
'label' => esc_html__( 'Select Slider Page', 'appointment-booking' ),
'description' => esc_html__('Slider image size (500 x 500)','appointment-booking'),
'section' => 'appointment_booking_slidersettings',
'type' => 'dropdown-pages'
) );
}
//content layout
$wp_customize->add_setting('appointment_booking_slider_content_option',array(
'default' => 'Left',
'sanitize_callback' => 'appointment_booking_sanitize_choices'
));
$wp_customize->add_control(new Appointment_Booking_Image_Radio_Control($wp_customize, 'appointment_booking_slider_content_option', array(
'type' => 'select',
'label' => esc_html__('Slider Content Layouts','appointment-booking'),
'section' => 'appointment_booking_slidersettings',
'choices' => array(
'Left' => esc_url(get_template_directory_uri()).'/assets/images/slider-content1.png',
'Center' => esc_url(get_template_directory_uri()).'/assets/images/slider-content2.png',
'Right' => esc_url(get_template_directory_uri()).'/assets/images/slider-content3.png',
))));
//Slider content padding
$wp_customize->add_setting('appointment_booking_slider_content_padding_top_bottom',array(
'default'=> '',
'sanitize_callback' => 'sanitize_text_field'
));
$wp_customize->add_control('appointment_booking_slider_content_padding_top_bottom',array(
'label' => __('Slider Content Padding Top Bottom','appointment-booking'),
'description' => __('Enter a value in %. Example:20%','appointment-booking'),
'input_attrs' => array(
'placeholder' => __( '50%', 'appointment-booking' ),
),
'section'=> 'appointment_booking_slidersettings',
'type'=> 'text'
));
$wp_customize->add_setting('appointment_booking_slider_content_padding_left_right',array(
'default'=> '',
'sanitize_callback' => 'sanitize_text_field'
));
$wp_customize->add_control('appointment_booking_slider_content_padding_left_right',array(
'label' => __('Slider Content Padding Left Right','appointment-booking'),
'description' => __('Enter a value in %. Example:20%','appointment-booking'),
'input_attrs' => array(
'placeholder' => __( '50%', 'appointment-booking' ),
),
'section'=> 'appointment_booking_slidersettings',
'type'=> 'text'
));
//Slider excerpt
$wp_customize->add_setting( 'appointment_booking_slider_excerpt_number', array(
'default' => 25,
'type' => 'theme_mod',
'transport' => 'refresh',
'sanitize_callback' => 'appointment_booking_sanitize_number_range',
'sanitize_js_callback' => 'absint',
) );
$wp_customize->add_control( 'appointment_booking_slider_excerpt_number', array(
'label' => esc_html__( 'Slider Excerpt length','appointment-booking' ),
'section' => 'appointment_booking_slidersettings',
'type' => 'range',
'settings' => 'appointment_booking_slider_excerpt_number',
'input_attrs' => array(
'step' => 5,
'min' => 0,
'max' => 50,
),
) );
//Slider height
$wp_customize->add_setting('appointment_booking_slider_height',array(
'default'=> '',
'sanitize_callback' => 'sanitize_text_field'
));
$wp_customize->add_control('appointment_booking_slider_height',array(
'label' => __('Slider Height','appointment-booking'),
'description' => __('Specify the slider height (px).','appointment-booking'),
'input_attrs' => array(
'placeholder' => __( '500px', 'appointment-booking' ),
),
'section'=> 'appointment_booking_slidersettings',
'type'=> 'text'
));
$wp_customize->add_setting( 'appointment_booking_slider_speed', array(
'default' => 4000,
'sanitize_callback' => 'appointment_booking_sanitize_float'
) );
$wp_customize->add_control( 'appointment_booking_slider_speed', array(
'label' => esc_html__('Slider Transition Speed','appointment-booking'),
'section' => 'appointment_booking_slidersettings',
'type' => 'number',
) );
//Services
$wp_customize->add_section('appointment_booking_services',array(
'title' => __('Services Section','appointment-booking'),
'description' => __('For more options of services section GO PRO','appointment-booking'),
'panel' => 'appointment_booking_panel_id',
));
$categories = get_categories();
$cat_posts = array();
$i = 0;
$cat_posts[]='Select';
foreach($categories as $category){
if($i==0){
$default = $category->slug;
$i++;
}
$cat_posts[$category->slug] = $category->name;
}
$wp_customize->add_setting('appointment_booking_services_category',array(
'default' => 'select',
'sanitize_callback' => 'appointment_booking_sanitize_choices',
));
$wp_customize->add_control('appointment_booking_services_category',array(
'type' => 'select',
'choices' => $cat_posts,
'label' => __('Select Category to display Latest Post','appointment-booking'),
'section' => 'appointment_booking_services',
));
//About us
$wp_customize->add_section('appointment_booking_about',array(
'title' => __('About Section','appointment-booking'),
'description' => __('For more options of about section GO PRO','appointment-booking'),
'panel' => 'appointment_booking_panel_id',
));
$wp_customize->add_setting('appointment_booking_section_text',array(
'default'=> '',
'sanitize_callback' => 'sanitize_text_field'
));
$wp_customize->add_control('appointment_booking_section_text',array(
'label' => __('Section Text','appointment-booking'),
'input_attrs' => array(
'placeholder' => __( 'SERVICES','appointment-booking' ),
),
'section'=> 'appointment_booking_about',
'type'=> 'text'
));
$wp_customize->add_setting('appointment_booking_section_title',array(
'default'=> '',
'sanitize_callback' => 'sanitize_text_field'
));
$wp_customize->add_control('appointment_booking_section_title',array(
'label' => __('Section Title','appointment-booking'),
'input_attrs' => array(
'placeholder' => __( 'Lorem ipsum dolor sit amet,','appointment-booking' ),
),
'section'=> 'appointment_booking_about',
'type'=> 'text'
));
$wp_customize->add_setting( 'appointment_booking_about_section', array(
'default' => '',
'sanitize_callback' => 'appointment_booking_sanitize_dropdown_pages'
) );
$wp_customize->add_control( 'appointment_booking_about_section', array(
'label' => esc_html__( 'Select About Page', 'appointment-booking' ),
'section' => 'appointment_booking_about',
'type' => 'dropdown-pages'
) );
//About excerpt
$wp_customize->add_setting( 'appointment_booking_about_excerpt_number', array(
'default' => 40,
'type' => 'theme_mod',
'transport' => 'refresh',
'sanitize_callback' => 'appointment_booking_sanitize_number_range',
'sanitize_js_callback' => 'absint',
) );
$wp_customize->add_control( 'appointment_booking_about_excerpt_number', array(
'label' => esc_html__( 'About Excerpt Length','appointment-booking' ),
'section' => 'appointment_booking_about',
'type' => 'range',
'settings' => 'appointment_booking_about_excerpt_number',
'input_attrs' => array(
'step' => 5,
'min' => 0,
'max' => 50,
),
) );
//No Result Page Setting
$wp_customize->add_section('appointment_booking_no_results_page',array(
'title' => __('No Results Page Settings','appointment-booking'),
'panel' => 'appointment_booking_panel_id',
));
$wp_customize->add_setting('appointment_booking_no_results_page_title',array(
'default'=> '',
'sanitize_callback' => 'sanitize_text_field'
));
$wp_customize->add_control('appointment_booking_no_results_page_title',array(
'label' => __('Add Title','appointment-booking'),
'input_attrs' => array(
'placeholder' => __( 'Nothing Found', 'appointment-booking' ),
),
'section'=> 'appointment_booking_no_results_page',
'type'=> 'text'
));
$wp_customize->add_setting('appointment_booking_no_results_page_content',array(
'default'=> '',
'sanitize_callback' => 'sanitize_text_field'
));
$wp_customize->add_control('appointment_booking_no_results_page_content',array(
'label' => __('Add Text','appointment-booking'),
'input_attrs' => array(
'placeholder' => __( 'Sorry, but nothing matched your search terms. Please try again with some different keywords.', 'appointment-booking' ),
),
'section'=> 'appointment_booking_no_results_page',
'type'=> 'text'
));
//Blog Post
$wp_customize->add_panel( $appointment_booking_parent_panel );
$BlogPostParentPanel = new Appointment_Booking_WP_Customize_Panel( $wp_customize, 'appointment_booking_blog_post_parent_panel', array(
'title' => esc_html__( 'Blog Post Settings', 'appointment-booking' ),
'panel' => 'appointment_booking_panel_id',
'priority' => 20,
));
$wp_customize->add_panel( $BlogPostParentPanel );
// Add example section and controls to the middle (second) panel
$wp_customize->add_section( 'appointment_booking_post_settings', array(
'title' => esc_html__( 'Post Settings', 'appointment-booking' ),
'panel' => 'appointment_booking_blog_post_parent_panel',
));
//Blog layout
$wp_customize->add_setting('appointment_booking_blog_layout_option',array(
'default' => 'Default',
'sanitize_callback' => 'appointment_booking_sanitize_choices'
));
$wp_customize->add_control(new Appointment_Booking_Image_Radio_Control($wp_customize, 'appointment_booking_blog_layout_option', array(
'type' => 'select',
'label' => esc_html__('Blog Post Layouts','appointment-booking'),
'section' => 'appointment_booking_post_settings',
'choices' => array(
'Default' => esc_url(get_template_directory_uri()).'/assets/images/blog-layout1.png',
'Center' => esc_url(get_template_directory_uri()).'/assets/images/blog-layout2.png',
'Left' => esc_url(get_template_directory_uri()).'/assets/images/blog-layout3.png',
))));
//Selective Refresh
$wp_customize->selective_refresh->add_partial('appointment_booking_toggle_postdate', array(
'selector' => '.post-main-box h2 a',
'render_callback' => 'appointment_booking_customize_partial_appointment_booking_toggle_postdate',
));
$wp_customize->add_setting( 'appointment_booking_toggle_postdate',array(
'default' => 1,
'transport' => 'refresh',
'sanitize_callback' => 'appointment_booking_switch_sanitization'
) );
$wp_customize->add_control( new Appointment_Booking_Toggle_Switch_Custom_Control( $wp_customize, 'appointment_booking_toggle_postdate',array(
'label' => esc_html__( 'Post Date','appointment-booking' ),
'section' => 'appointment_booking_post_settings'
)));
$wp_customize->add_setting( 'appointment_booking_toggle_author',array(
'default' => 1,
'transport' => 'refresh',
'sanitize_callback' => 'appointment_booking_switch_sanitization'
) );
$wp_customize->add_control( new Appointment_Booking_Toggle_Switch_Custom_Control( $wp_customize, 'appointment_booking_toggle_author',array(
'label' => esc_html__( 'Author','appointment-booking' ),
'section' => 'appointment_booking_post_settings'
)));
$wp_customize->add_setting( 'appointment_booking_toggle_comments',array(
'default' => 1,
'transport' => 'refresh',
'sanitize_callback' => 'appointment_booking_switch_sanitization'
) );
$wp_customize->add_control( new Appointment_Booking_Toggle_Switch_Custom_Control( $wp_customize, 'appointment_booking_toggle_comments',array(
'label' => esc_html__( 'Comments','appointment-booking' ),
'section' => 'appointment_booking_post_settings'
)));
$wp_customize->add_setting( 'appointment_booking_toggle_time',array(
'default' => 1,
'transport' => 'refresh',
'sanitize_callback' => 'appointment_booking_switch_sanitization'
) );
$wp_customize->add_control( new Appointment_Booking_Toggle_Switch_Custom_Control( $wp_customize, 'appointment_booking_toggle_time',array(
'label' => esc_html__( 'Time','appointment-booking' ),
'section' => 'appointment_booking_post_settings'
)));
$wp_customize->add_setting( 'appointment_booking_featured_image_hide_show',array(
'default' => 1,
'transport' => 'refresh',
'sanitize_callback' => 'appointment_booking_switch_sanitization'
));
$wp_customize->add_control( new Appointment_Booking_Toggle_Switch_Custom_Control( $wp_customize, 'appointment_booking_featured_image_hide_show', array(
'label' => esc_html__( 'Featured Image','appointment-booking' ),
'section' => 'appointment_booking_post_settings'
)));
//Featured Image
$wp_customize->add_setting( 'appointment_booking_featured_image_border_radius', array(
'default' => '0',
'transport' => 'refresh',
'sanitize_callback' => 'appointment_booking_sanitize_number_range'
) );
$wp_customize->add_control( 'appointment_booking_featured_image_border_radius', array(
'label' => esc_html__( 'Featured Image Border Radius','appointment-booking' ),
'section' => 'appointment_booking_post_settings',
'type' => 'range',
'input_attrs' => array(
'step' => 1,
'min' => 1,
'max' => 50,
),
) );
$wp_customize->add_setting( 'appointment_booking_featured_image_box_shadow', array(
'default' => '0',
'transport' => 'refresh',
'sanitize_callback' => 'appointment_booking_sanitize_number_range'
) );
$wp_customize->add_control( 'appointment_booking_featured_image_box_shadow', array(
'label' => esc_html__( 'Featured Image Box Shadow','appointment-booking' ),
'section' => 'appointment_booking_post_settings',
'type' => 'range',
'input_attrs' => array(
'step' => 1,
'min' => 1,
'max' => 50,
),
) );
$wp_customize->add_setting( 'appointment_booking_excerpt_number', array(
'default' => 30,
'type' => 'theme_mod',
'transport' => 'refresh',
'sanitize_callback' => 'appointment_booking_sanitize_number_range',
'sanitize_js_callback' => 'absint',
) );
$wp_customize->add_control( 'appointment_booking_excerpt_number', array(
'label' => esc_html__( 'Excerpt length','appointment-booking' ),
'section' => 'appointment_booking_post_settings',
'type' => 'range',
'settings' => 'appointment_booking_excerpt_number',
'input_attrs' => array(
'step' => 5,
'min' => 0,
'max' => 50,
),
) );
$wp_customize->add_setting('appointment_booking_meta_field_separator',array(
'default'=> '|',
'sanitize_callback' => 'sanitize_text_field'
));
$wp_customize->add_control('appointment_booking_meta_field_separator',array(
'label' => __('Add Meta Separator','appointment-booking'),
'description' => __('Add the seperator for meta box. Example: "|", "/", etc.','appointment-booking'),
'section'=> 'appointment_booking_post_settings',
'type'=> 'text'
));
$wp_customize->add_setting('appointment_booking_excerpt_settings',array(
'default' => 'Excerpt',
'transport' => 'refresh',
'sanitize_callback' => 'appointment_booking_sanitize_choices'
));
$wp_customize->add_control('appointment_booking_excerpt_settings',array(
'type' => 'select',
'label' => esc_html__('Post Content','appointment-booking'),
'section' => 'appointment_booking_post_settings',
'choices' => array(
'Content' => esc_html__('Content','appointment-booking'),
'Excerpt' => esc_html__('Excerpt','appointment-booking'),
'No Content' => esc_html__('No Content','appointment-booking')
),
) );
// Button Settings
$wp_customize->add_section( 'appointment_booking_button_settings', array(
'title' => esc_html__( 'Button Settings', 'appointment-booking' ),
'panel' => 'appointment_booking_blog_post_parent_panel',
));
$wp_customize->add_setting( 'appointment_booking_button_border_radius', array(
'default' => 30,
'type' => 'theme_mod',
'transport' => 'refresh',
'sanitize_callback' => 'appointment_booking_sanitize_number_range',
'sanitize_js_callback' => 'absint',
) );
$wp_customize->add_control( 'appointment_booking_button_border_radius', array(
'label' => esc_html__( 'Button Border Radius','appointment-booking' ),
'section' => 'appointment_booking_button_settings',
'type' => 'range',
'input_attrs' => array(
'step' => 1,
'min' => 1,
'max' => 50,
),
) );
//Selective Refresh
$wp_customize->selective_refresh->add_partial('appointment_booking_button_text', array(
'selector' => '.post-main-box .more-btn a',
'render_callback' => 'appointment_booking_customize_partial_appointment_booking_button_text',
));
$wp_customize->add_setting('appointment_booking_button_text',array(
'default'=> esc_html__('READ MORE','appointment-booking'),
'sanitize_callback' => 'sanitize_text_field'
));
$wp_customize->add_control('appointment_booking_button_text',array(
'label' => esc_html__('Add Button Text','appointment-booking'),
'input_attrs' => array(
'placeholder' => esc_html__( 'READ MORE', 'appointment-booking' ),
),
'section'=> 'appointment_booking_button_settings',
'type'=> 'text'
));
// Related Post Settings
$wp_customize->add_section( 'appointment_booking_related_posts_settings', array(
'title' => esc_html__( 'Related Posts Settings', 'appointment-booking' ),
'panel' => 'appointment_booking_blog_post_parent_panel',
));
//Selective Refresh
$wp_customize->selective_refresh->add_partial('appointment_booking_related_post_title', array(
'selector' => '.related-post h3',
'render_callback' => 'appointment_booking_customize_partial_appointment_booking_related_post_title',
));
$wp_customize->add_setting( 'appointment_booking_related_post',array(
'default' => 1,
'transport' => 'refresh',
'sanitize_callback' => 'appointment_booking_switch_sanitization'
) );
$wp_customize->add_control( new Appointment_Booking_Toggle_Switch_Custom_Control( $wp_customize, 'appointment_booking_related_post',array(
'label' => esc_html__( 'Related Post','appointment-booking' ),
'section' => 'appointment_booking_related_posts_settings'
)));
$wp_customize->add_setting('appointment_booking_related_post_title',array(
'default'=> '',
'sanitize_callback' => 'sanitize_text_field'
));
$wp_customize->add_control('appointment_booking_related_post_title',array(
'label' => esc_html__('Add Related Post Title','appointment-booking'),
'input_attrs' => array(
'placeholder' => esc_html__( 'Related Post', 'appointment-booking' ),
),
'section'=> 'appointment_booking_related_posts_settings',
'type'=> 'text'
));
$wp_customize->add_setting('appointment_booking_related_posts_count',array(
'default'=> 3,
'sanitize_callback' => 'sanitize_text_field'
));
$wp_customize->add_control('appointment_booking_related_posts_count',array(
'label' => esc_html__('Add Related Post Count','appointment-booking'),
'input_attrs' => array(
'placeholder' => esc_html__( '3', 'appointment-booking' ),
),
'section'=> 'appointment_booking_related_posts_settings',
'type'=> 'number'
));
// Single Posts Settings
$wp_customize->add_section( 'appointment_booking_single_blog_settings', array(
'title' => __( 'Single Post Settings', 'appointment-booking' ),
'panel' => 'appointment_booking_blog_post_parent_panel',
));
$wp_customize->add_setting('appointment_booking_single_post_meta_field_separator',array(
'default'=> '|',
'sanitize_callback' => 'sanitize_text_field'
));
$wp_customize->add_control('appointment_booking_single_post_meta_field_separator',array(
'label' => __('Add Meta Separator','appointment-booking'),
'description' => __('Add the seperator for meta box. Example: "|", "/", etc.','appointment-booking'),
'section'=> 'appointment_booking_single_blog_settings',
'type'=> 'text'
));
$wp_customize->add_setting( 'appointment_booking_toggle_tags',array(
'default' => 1,
'transport' => 'refresh',
'sanitize_callback' => 'appointment_booking_switch_sanitization'
));
$wp_customize->add_control( new Appointment_Booking_Toggle_Switch_Custom_Control( $wp_customize, 'appointment_booking_toggle_tags', array(
'label' => esc_html__( 'Tags','appointment-booking' ),
'section' => 'appointment_booking_single_blog_settings'
)));
$wp_customize->add_setting('appointment_booking_single_blog_comment_width',array(
'default'=> '',
'sanitize_callback' => 'sanitize_text_field'
));
$wp_customize->add_control('appointment_booking_single_blog_comment_width',array(
'label' => __('Comment Form Width','appointment-booking'),
'description' => __('Enter a value in %. Example:50%','appointment-booking'),
'input_attrs' => array(
'placeholder' => __( '100%', 'appointment-booking' ),
),
'section'=> 'appointment_booking_single_blog_settings',
'type'=> 'text'
));
//Responsive Media Settings
$wp_customize->add_section('appointment_booking_responsive_media',array(
'title' => esc_html__('Responsive Media','appointment-booking'),
'panel' => 'appointment_booking_panel_id',
));
$wp_customize->add_setting( 'appointment_booking_resp_slider_hide_show',array(
'default' => 0,
'transport' => 'refresh',
'sanitize_callback' => 'appointment_booking_switch_sanitization'
));
$wp_customize->add_control( new Appointment_Booking_Toggle_Switch_Custom_Control( $wp_customize, 'appointment_booking_resp_slider_hide_show',array(
'label' => esc_html__( 'Show / Hide Slider','appointment-booking' ),
'section' => 'appointment_booking_responsive_media'
)));
$wp_customize->add_setting( 'appointment_booking_sidebar_hide_show',array(
'default' => 1,
'transport' => 'refresh',
'sanitize_callback' => 'appointment_booking_switch_sanitization'
));
$wp_customize->add_control( new Appointment_Booking_Toggle_Switch_Custom_Control( $wp_customize, 'appointment_booking_sidebar_hide_show',array(
'label' => esc_html__( 'Show / Hide Sidebar','appointment-booking' ),
'section' => 'appointment_booking_responsive_media'
)));
$wp_customize->add_setting( 'appointment_booking_resp_scroll_top_hide_show',array(
'default' => 1,
'transport' => 'refresh',
'sanitize_callback' => 'appointment_booking_switch_sanitization'
));
$wp_customize->add_control( new Appointment_Booking_Toggle_Switch_Custom_Control( $wp_customize, 'appointment_booking_resp_scroll_top_hide_show',array(
'label' => esc_html__( 'Show / Hide Scroll To Top','appointment-booking' ),
'section' => 'appointment_booking_responsive_media'
)));
$wp_customize->add_setting('appointment_booking_res_open_menu_icon',array(
'default' => 'fas fa-bars',
'sanitize_callback' => 'sanitize_text_field'
));
$wp_customize->add_control(new Appointment_Booking_Fontawesome_Icon_Chooser(
$wp_customize,'appointment_booking_res_open_menu_icon',array(
'label' => __('Add Open Menu Icon','appointment-booking'),
'transport' => 'refresh',
'section' => 'appointment_booking_responsive_media',
'setting' => 'appointment_booking_res_open_menu_icon',
'type' => 'icon'
)));
$wp_customize->add_setting('appointment_booking_res_close_menus_icon',array(
'default' => 'fas fa-times',
'sanitize_callback' => 'sanitize_text_field'
));
$wp_customize->add_control(new Appointment_Booking_Fontawesome_Icon_Chooser(
$wp_customize,'appointment_booking_res_close_menus_icon',array(
'label' => __('Add Close Menu Icon','appointment-booking'),
'transport' => 'refresh',
'section' => 'appointment_booking_responsive_media',
'setting' => 'appointment_booking_res_close_menus_icon',
'type' => 'icon'
)));
$wp_customize->add_setting('appointment_booking_resp_menu_toggle_btn_bg_color', array(
'default' => '',
'sanitize_callback' => 'sanitize_hex_color',
));
$wp_customize->add_control(new WP_Customize_Color_Control($wp_customize, 'appointment_booking_resp_menu_toggle_btn_bg_color', array(
'label' => __('Toggle Button Bg Color', 'appointment-booking'),
'section' => 'appointment_booking_responsive_media',
)));
//Footer Text
$wp_customize->add_section('appointment_booking_footer',array(
'title' => esc_html__('Footer Settings','appointment-booking'),
'description' => __('For more options of footer section GO PRO','appointment-booking'),
'panel' => 'appointment_booking_panel_id',
));
$wp_customize->add_setting('appointment_booking_footer_background_color', array(
'default' => '#252525',
'sanitize_callback' => 'sanitize_hex_color',
));
$wp_customize->add_control(new WP_Customize_Color_Control($wp_customize, 'appointment_booking_footer_background_color', array(
'label' => __('Footer Background Color', 'appointment-booking'),
'section' => 'appointment_booking_footer',
)));
//Selective Refresh
$wp_customize->selective_refresh->add_partial('appointment_booking_footer_text', array(
'selector' => '.copyright p',
'render_callback' => 'appointment_booking_customize_partial_appointment_booking_footer_text',
));
$wp_customize->add_setting('appointment_booking_footer_text',array(
'default'=> '',
'sanitize_callback' => 'sanitize_text_field'
));
$wp_customize->add_control('appointment_booking_footer_text',array(
'label' => esc_html__('Copyright Text','appointment-booking'),
'input_attrs' => array(
'placeholder' => esc_html__( 'Copyright 2020, .....', 'appointment-booking' ),
),
'section'=> 'appointment_booking_footer',
'type'=> 'text'
));
$wp_customize->add_setting('appointment_booking_copyright_alingment',array(
'default' => 'center',
'sanitize_callback' => 'appointment_booking_sanitize_choices'
));
$wp_customize->add_control(new Appointment_Booking_Image_Radio_Control($wp_customize, 'appointment_booking_copyright_alingment', array(
'type' => 'select',
'label' => esc_html__('Copyright Alignment','appointment-booking'),
'section' => 'appointment_booking_footer',
'settings' => 'appointment_booking_copyright_alingment',
'choices' => array(
'left' => esc_url(get_template_directory_uri()).'/assets/images/copyright1.png',
'center' => esc_url(get_template_directory_uri()).'/assets/images/copyright2.png',
'right' => esc_url(get_template_directory_uri()).'/assets/images/copyright3.png'
))));
$wp_customize->add_setting( 'appointment_booking_footer_scroll',array(
'default' => 1,
'transport' => 'refresh',
'sanitize_callback' => 'appointment_booking_switch_sanitization'
));
$wp_customize->add_control( new Appointment_Booking_Toggle_Switch_Custom_Control( $wp_customize, 'appointment_booking_footer_scroll',array(
'label' => esc_html__( 'Show / Hide Scroll to Top','appointment-booking' ),
'section' => 'appointment_booking_footer'
)));
//Selective Refresh
$wp_customize->selective_refresh->add_partial('appointment_booking_scroll_to_top_icon', array(
'selector' => '.scrollup i',
'render_callback' => 'appointment_booking_customize_partial_appointment_booking_scroll_to_top_icon',
));
$wp_customize->add_setting('appointment_booking_scroll_top_alignment',array(
'default' => 'Right',
'sanitize_callback' => 'appointment_booking_sanitize_choices'
));
$wp_customize->add_control(new Appointment_Booking_Image_Radio_Control($wp_customize, 'appointment_booking_scroll_top_alignment', array(
'type' => 'select',
'label' => esc_html__('Scroll To Top','appointment-booking'),
'section' => 'appointment_booking_footer',
'settings' => 'appointment_booking_scroll_top_alignment',
'choices' => array(
'Left' => esc_url(get_template_directory_uri()).'/assets/images/layout1.png',
'Center' => esc_url(get_template_directory_uri()).'/assets/images/layout2.png',
'Right' => esc_url(get_template_directory_uri()).'/assets/images/layout3.png'
))));
//Woocommerce settings
$wp_customize->add_section('appointment_booking_woocommerce_section', array(
'title' => __('WooCommerce Layout', 'appointment-booking'),
'priority' => null,
'panel' => 'woocommerce',
));
$wp_customize->add_setting('appointment_booking_products_btn_padding_top_bottom',array(
'default'=> '',
'sanitize_callback' => 'sanitize_text_field'
));
$wp_customize->add_control('appointment_booking_products_btn_padding_top_bottom',array(
'label' => __('Products Button Padding Top Bottom','appointment-booking'),
'description' => __('Enter a value in pixels. Example:20px','appointment-booking'),
'input_attrs' => array(
'placeholder' => __( '10px', 'appointment-booking' ),
),
'section'=> 'appointment_booking_woocommerce_section',
'type'=> 'text'
));
$wp_customize->add_setting('appointment_booking_products_btn_padding_left_right',array(
'default'=> '',
'sanitize_callback' => 'sanitize_text_field'
));
$wp_customize->add_control('appointment_booking_products_btn_padding_left_right',array(
'label' => __('Products Button Padding Left Right','appointment-booking'),
'description' => __('Enter a value in pixels. Example:20px','appointment-booking'),
'input_attrs' => array(
'placeholder' => __( '10px', 'appointment-booking' ),
),
'section'=> 'appointment_booking_woocommerce_section',
'type'=> 'text'
));
//Products Sale Badge
$wp_customize->add_setting('appointment_booking_woocommerce_sale_position',array(
'default' => 'right',
'sanitize_callback' => 'appointment_booking_sanitize_choices'
));
$wp_customize->add_control('appointment_booking_woocommerce_sale_position',array(
'type' => 'select',
'label' => __('Sale Badge Position','appointment-booking'),
'section' => 'appointment_booking_woocommerce_section',
'choices' => array(
'left' => __('Left','appointment-booking'),
'right' => __('Right','appointment-booking'),
),
) );
$wp_customize->add_setting('appointment_booking_woocommerce_sale_padding_top_bottom',array(
'default'=> '',
'sanitize_callback' => 'sanitize_text_field'
));
$wp_customize->add_control('appointment_booking_woocommerce_sale_padding_top_bottom',array(
'label' => __('Sale Padding Top Bottom','appointment-booking'),
'description' => __('Enter a value in pixels. Example:20px','appointment-booking'),
'input_attrs' => array(
'placeholder' => __( '10px', 'appointment-booking' ),
),
'section'=> 'appointment_booking_woocommerce_section',
'type'=> 'text'
));
$wp_customize->add_setting('appointment_booking_woocommerce_sale_padding_left_right',array(
'default'=> '',
'sanitize_callback' => 'sanitize_text_field'
));
$wp_customize->add_control('appointment_booking_woocommerce_sale_padding_left_right',array(
'label' => __('Sale Padding Left Right','appointment-booking'),
'description' => __('Enter a value in pixels. Example:20px','appointment-booking'),
'input_attrs' => array(
'placeholder' => __( '10px', 'appointment-booking' ),
),
'section'=> 'appointment_booking_woocommerce_section',
'type'=> 'text'
));
// Has to be at the top
$wp_customize->register_panel_type( 'Appointment_Booking_WP_Customize_Panel' );
$wp_customize->register_section_type( 'Appointment_Booking_WP_Customize_Section' );
}
add_action( 'customize_register', 'appointment_booking_customize_register' );
load_template( trailingslashit( get_template_directory() ) . '/inc/logo/logo-resizer.php' );
if ( class_exists( 'WP_Customize_Panel' ) ) {
class Appointment_Booking_WP_Customize_Panel extends WP_Customize_Panel {
public $panel;
public $type = 'appointment_booking_panel';
public function json() {
$array = wp_array_slice_assoc( (array) $this, array( 'id', 'description', 'priority', 'type', 'panel', ) );
$array['title'] = html_entity_decode( $this->title, ENT_QUOTES, get_bloginfo( 'charset' ) );
$array['content'] = $this->get_content();
$array['active'] = $this->active();
$array['instanceNumber'] = $this->instance_number;
return $array;
}
}
}
if ( class_exists( 'WP_Customize_Section' ) ) {
class Appointment_Booking_WP_Customize_Section extends WP_Customize_Section {
public $section;
public $type = 'appointment_booking_section';
public function json() {
$array = wp_array_slice_assoc( (array) $this, array( 'id', 'description', 'priority', 'panel', 'type', 'description_hidden', 'section', ) );
$array['title'] = html_entity_decode( $this->title, ENT_QUOTES, get_bloginfo( 'charset' ) );
$array['content'] = $this->get_content();
$array['active'] = $this->active();
$array['instanceNumber'] = $this->instance_number;
if ( $this->panel ) {
$array['customizeAction'] = sprintf( 'Customizing ▸ %s', esc_html( $this->manager->get_panel( $this->panel )->title ) );
} else {
$array['customizeAction'] = 'Customizing';
}
return $array;
}
}
}
// Enqueue our scripts and styles
function appointment_booking_customize_controls_scripts() {
wp_enqueue_script( 'appointment-booking-customizer-controls', get_theme_file_uri( '/assets/js/customizer-controls.js' ), array(), '1.0', true );
}
add_action( 'customize_controls_enqueue_scripts', 'appointment_booking_customize_controls_scripts' );
/**
* Singleton class for handling the theme's customizer integration.
*
* @since 1.0.0
* @access public
*/
final class Appointment_Booking_Customize {
/**
* Returns the instance.
*
* @since 1.0.0
* @access public
* @return object
*/
public static function get_instance() {
static $instance = null;
if ( is_null( $instance ) ) {
$instance = new self;
$instance->setup_actions();
}
return $instance;
}
/**
* Constructor method.
*
* @since 1.0.0
* @access private
* @return void
*/
private function __construct() {}
/**
* Sets up initial actions.
*
* @since 1.0.0
* @access private
* @return void
*/
private function setup_actions() {
// Register panels, sections, settings, controls, and partials.
add_action( 'customize_register', array( $this, 'sections' ) );
// Register scripts and styles for the controls.
add_action( 'customize_controls_enqueue_scripts', array( $this, 'enqueue_control_scripts' ), 0 );
}
/**
* Sets up the customizer sections.
*
* @since 1.0.0
* @access public
* @param object $manager
* @return void
*/
public function sections( $manager ) {
// Load custom sections.
load_template( trailingslashit( get_template_directory() ) . '/inc/section-pro.php' );
// Register custom section types.
$manager->register_section_type( 'Appointment_Booking_Customize_Section_Pro' );
// Register sections.
$manager->add_section( new Appointment_Booking_Customize_Section_Pro( $manager,'appointment_booking_upgrade_pro_link', array(
'priority' => 1,
'title' => esc_html__( 'Appointment Booking', 'appointment-booking' ),
'pro_text' => esc_html__( 'UPGRADE PRO', 'appointment-booking' ),
'pro_url' => esc_url('https://www.vwthemes.com/themes/appointment-wordpress-theme/'),
) ) );
// Register sections.
$manager->add_section(new Appointment_Booking_Customize_Section_Pro($manager,'appointment_booking_get_started_link',array(
'priority' => 1,
'title' => esc_html__( 'DOCUMENTATION', 'appointment-booking' ),
'pro_text' => esc_html__( 'DOCS', 'appointment-booking' ),
'pro_url' => esc_url('https://vwthemesdemo.com/docs/free-appointment-booking/'),
)));
}
/**
* Loads theme customizer CSS.
*
* @since 1.0.0
* @access public
* @return void
*/
public function enqueue_control_scripts() {
wp_enqueue_script( 'appointment-booking-customize-controls', trailingslashit( esc_url(get_template_directory_uri()) ) . '/assets/js/customize-controls.js', array( 'customize-controls' ) );
wp_enqueue_style( 'appointment-booking-customize-controls', trailingslashit( esc_url(get_template_directory_uri()) ) . '/assets/css/customize-controls.css' );
}
}
// Doing this customizer thang!
Appointment_Booking_Customize::get_instance();