nn?php
add_action( 'after_setup_theme', 'wdwt_customizer_register' );
/*------------*/
/*------------*/
function wdwt_customizer_register(){
add_action( 'customize_register', 'wdwt_customizer_add_panels');
add_action( 'customize_controls_enqueue_scripts', 'wdwt_customizer_add_scripts' );
global $wp_customize;
if ( isset( $wp_customize ) ) {
add_action( 'customize_preview_init','wdwt_customizer_refresh_head', 9);
}
}
function wdwt_customizer_add_panels($wp_customize ){
/*
the following sections are standard
title_tagline – Site Title & Tagline
colors – Colors
header_image – Header Image
background_image – Background Image
nav – Navigation
static_front_page – Static Front Page
*/
$panels = wdwt_get_tabs();
$priority = 1;
/* Add panels */
foreach ( $panels as $panel => $panel_data ) {
$wp_customize->add_panel( WDWT_VAR .'_'. $panel, array(
'priority' => $priority,
'capability' => 'edit_theme_options',
'title' => $panel_data['title'],
'description' => $panel_data['description'],
));
foreach ($panel_data['sections'] as $section => $section_data ){
$wp_customize->add_section( $section, array(
'priority' => $priority,
'capability' => 'edit_theme_options',
'title' => $section_data['title'],
'description' => $section_data['description'],
'panel' => WDWT_VAR .'_'. $panel,
));
}
$priority += 1;
}
/*move standard WP sections to general panel*/
$general_links_priority = $wp_customize->get_section( 'general_links' )->priority;
$core_sections = array('title_tagline','header_image','background_image','static_front_page');
$core_sections_priority = $general_links_priority+1;
foreach($core_sections as $core_section){
$core_sect = (object) $wp_customize->get_section( $core_section );
$core_sect->panel = WDWT_VAR .'_general';
$core_sect->priority = $core_sections_priority;
$core_sections_priority += 1;
}
/*move background color to color control panel*/
$wp_customize->get_control( 'background_color' )->section = 'color_control';
$builtin_mods = array(
'background',
'navigation',
'site-title-tagline',
'static-front-page',
);
$options = wdwt_get_option_parameters();
/* Add options to the section */
wdwt_customizer_add_section_options( $options );
}
function wdwt_customizer_add_section_options( $options_array) {
global $wp_customize;
foreach ( $options_array as $optionname => $option ) {
/* Add setting */
if ( isset( $option['customizer'] ) ) {
$defaults = array(
'type' => 'option',
'capability' => 'edit_theme_options',
'theme_supports' => '',
'transport' => 'refresh',
'sanitize_callback' => '',
'sanitize_js_callback' => ''
);
$setting = wp_parse_args( $option['customizer'], $defaults );
$setting_id = WDWT_OPT.'[' . $optionname . ']';
$sanitize_callback = wdwt_options_customizer_validate($option);
if($optionname == 'color_scheme'){
$setting_id = WDWT_OPT.'[' . $optionname . '][active]';
}
$wp_customize->add_setting( $setting_id, array(
'default' => $option['default'],
'type' => $setting['type'],
'capability' => $setting['capability'],
'theme_supports' => $setting['theme_supports'],
'transport' => $setting['transport'],
'sanitize_callback' => $sanitize_callback,
'sanitize_js_callback' => $setting['sanitize_js_callback'],
));
/* Add controls */
require_once('WDWT_control_classes.php');
/* Check for a specialized control class */
/* Dynamically generate a new class instance */
if(class_exists ( "WDWT_control_".$option['type'] )){
$classname = "WDWT_control_".$option['type'];
$wp_customize->add_control( new $classname( $wp_customize, $setting_id, array('element'=>$option) ) );
}
else {
$wp_customize->add_control( $setting_id, array(
'settings' => $setting_id,
'label' => $option['title'],
'section' => $option['section'],
'type' => $option['type']
));
}
}
}
}
function wdwt_options_customizer_validate($param){
if(!isset($param['type'])){
return '';
}
if(!isset($param ['sanitize_type'])){
$param ['sanitize_type'] ='';
}
switch ($param['type']) :
case 'text':
case 'textarea':
case 'upload_single':
case 'number':
$callback_func = "text_" . $param ['sanitize_type'];
break;
case 'textarea_slider':
case 'text_slider' :
case 'upload_multiple' :
$callback_func = "text_slider_" . $param ['sanitize_type'];
break;
case 'select' :
case 'select_open' :
case 'select_style' :
$callback_func = "select_". $param ['sanitize_type'];
break;
case 'select_theme' :
$callback_func = "select_theme_". $param ['sanitize_type'];
break;
default :
return '';
break;
endswitch;
return array('WDWT_customizer_sanitizer', $callback_func);
}
function wdwt_customizer_add_scripts(){
wp_enqueue_script('media-upload');
add_thickbox();
wp_enqueue_script( 'wdwt_customizer-preview', WDWT_URL.'/inc/lib/WDWT_elements.js',array( 'jquery','wp-color-picker' ), WDWT_VERSION, true);
wp_localize_script( 'wdwt_customizer-preview', 'wdwt_slide_warning', __("You cannot delete the last slide! Try to turn off the slider", "sauron") );
wp_enqueue_style( 'wdwt_customizer_style', WDWT_URL. '/inc/css/admin.css', array(),WDWT_VERSION );
wp_enqueue_script( 'wdwt_customizer-main', WDWT_URL.'/inc/customizer/customizer.js',array( 'jquery'), WDWT_VERSION);
$params_array = array(
'homepage' => WDWT_HOMEPAGE,
'img_URL' => WDWT_IMG_INC,
'is_pro' => false,
);
wp_localize_script( 'wdwt_customizer-main', 'WDWT', $params_array );
}
/**
* called right before the wdwt_include_head() to update the options variable value
* pre_option hook is called in customizer API
*/
function wdwt_customizer_refresh_head(){
global $wdwt_front, $wdwt_options;
$wdwt_options = wdwt_get_options();
$front_class = WDWT_VAR.'_front';
$wdwt_front = new $front_class($wdwt_options);
}
Oxnard Bicycle Repair – Bicycle Shop for all of your bike's needs.
About Us
COMPANY NAME has been delivering results since we opened in YEAR. Our goal is to provide both a superior customer experience and tremendous value for our customers. OWNER NAME has over NUMBER years of experience in INDUSTRY NAME and is passionate about exceeding your expectations. We love our customers and welcome your feedback and suggestions….
Go Top