pro_text;
$json['pro_url'] = esc_url( $this->pro_url );
return $json;
}
/**
* Outputs the Underscore.js template.
*
* @since 1.0.0
* @access public
* @return void
*/
protected function render_template() { ?>
{{ data.title }}
<# if ( data.pro_text && data.pro_url ) { #>
{{ data.pro_text }}
<# } #>
add_panel( 'ambition_theme_options', array(
'priority' => 10,
'capability' => 'edit_theme_options',
'title' => __('Ambition Theme Options', 'ambition')
));
/********************Ambition Upgrade ******************************************/
$wp_customize->add_section('ambition_upgrade', array(
'title' => __('Ambition Support', 'ambition'),
'priority' => 1,
));
$wp_customize->add_setting( 'ambition_theme_settings[ambition_upgrade]', array(
'default' => false,
'capability' => 'edit_theme_options',
'sanitize_callback' => 'wp_filter_nohtml_kses',
));
$wp_customize->add_control(
new Ambition_Customize_Ambition_upgrade(
$wp_customize,
'ambition_upgrade',
array(
'label' => __('Ambition Upgrade','ambition'),
'section' => 'ambition_upgrade',
'settings' => 'ambition_theme_settings[ambition_upgrade]',
)
)
);
/********************Site Layout ******************************************/
$wp_customize->add_section('ambition_design_layout', array(
'title' => __('Site Layout', 'ambition'),
'priority' => 101,
'panel' =>'ambition_theme_options'
));
$wp_customize->add_setting('ambition_theme_settings[design_layout]', array(
'default' => 'on',
'sanitize_callback' => 'prefix_sanitize_integer',
'type' => 'option',
'capability' => 'manage_options'
));
$wp_customize->add_control('ambition_design_layout', array(
'section' => 'ambition_design_layout',
'settings' => 'ambition_theme_settings[design_layout]',
'type' => 'radio',
'checked' => 'checked',
'choices' => array(
'on' => __('Wide Layout','ambition'),
'off' => __('Narrow Layout','ambition'),
),
));
/********************Content Layout ******************************************/
$wp_customize->add_section('ambition_content_layout', array(
'title' => __('Content Layout', 'ambition'),
'description' => __('Make sure that you have not set the layout from specific page','ambition'),
'priority' => 102,
'panel' =>'ambition_theme_options'
));
$wp_customize->add_setting('ambition_theme_settings[content_layout]', array(
'default' => 'right',
'sanitize_callback' => 'prefix_sanitize_integer',
'type' => 'option',
'capability' => 'manage_options'
));
$wp_customize->add_control('ambition_content_layout', array(
'section' => 'ambition_content_layout',
'settings' => 'ambition_theme_settings[content_layout]',
'type' => 'radio',
'checked' => 'checked',
'choices' => array(
'right' => __('Right Sidebar','ambition'),
'left' => __('Left Sidebar','ambition'),
'nosidebar' => __('No Sidebar','ambition'),
'fullwidth' => __('No Sidebar Full Width','ambition'),
),
));
/********************Site Title Background Image ******************************************/
$wp_customize->add_section( 'ambition_site_title', array(
'title' => __('Page Title Background Image', 'ambition'),
'priority' => 103,
'panel' =>'ambition_theme_options'
));
$wp_customize->add_setting( 'ambition_theme_settings[site_title_setting]', array(
'default' => 0,
'sanitize_callback' => 'prefix_sanitize_integer',
'type' => 'option',
'capability' => 'manage_options'
));
$wp_customize->add_control( 'site_title_setting', array(
'label' => __('Check to disable', 'ambition'),
'section' => 'ambition_site_title',
'settings' => 'ambition_theme_settings[site_title_setting]',
'type' => 'checkbox',
));
$wp_customize->add_setting( 'ambition_theme_settings[img-upload-site-title]',array(
'sanitize_callback' => 'esc_url_raw',
'panel' =>'ambition_theme_options',
'type' => 'option',
'capability' => 'manage_options'
));
$wp_customize->add_control(
new WP_Customize_Image_Control(
$wp_customize,
'img-upload-site-title',
array(
'section' => 'ambition_site_title',
'settings' => 'ambition_theme_settings[img-upload-site-title]',
)
)
);
/********************Custom Header ******************************************/
$wp_customize->add_section('custom_header_setting', array(
'title' => __('Header Options', 'ambition'),
'priority' => 104,
'panel' =>'ambition_theme_options'
));
$wp_customize->add_setting( 'ambition_theme_settings[search_header_settings]', array(
'default' => 0,
'sanitize_callback' => 'prefix_sanitize_integer',
'type' => 'option',
'capability' => 'manage_options'
));
$wp_customize->add_control( 'custom_header_setting', array(
'label' => __('Check to disable Search Form from Header', 'ambition'),
'section' => 'custom_header_setting',
'settings' => 'ambition_theme_settings[search_header_settings]',
'type' => 'checkbox',
));
$wp_customize->add_setting( 'ambition_theme_settings[img-upload-header-logo]',array(
'sanitize_callback' => 'esc_url_raw',
'type' => 'option',
'capability' => 'manage_options'
));
$wp_customize->add_control(
new WP_Customize_Image_Control(
$wp_customize,
'img-upload-header-logo',
array(
'label' => __('Header Logo','ambition'),
'section' => 'custom_header_setting',
'settings' => 'ambition_theme_settings[img-upload-header-logo]'
)
)
);
$wp_customize->add_setting('ambition_theme_settings[header_settings]', array(
'default' => 'header_text',
'sanitize_callback' => 'prefix_sanitize_integer',
'type' => 'option',
'capability' => 'manage_options'
));
$wp_customize->add_control('custom_header_display', array(
'label' => __('Display', 'ambition'),
'section' => 'custom_header_setting',
'settings' => 'ambition_theme_settings[header_settings]',
'type' => 'radio',
'checked' => 'checked',
'choices' => array(
'header_text' => __('Header Text Only','ambition'),
'header_logo' => __('Header Logo Only','ambition'),
'disable_both' => __('Disable Both','ambition'),
),
));
/********************Custom Css ******************************************/
$wp_customize->add_section( 'ambition_custom_css', array(
'title' => __('Custom CSS', 'ambition'),
'description' => __('This CSS will overwrite the CSS of style.css file.','ambition'),
'priority' => 107,
'panel' =>'ambition_theme_options'
));
$wp_customize->add_setting( 'ambition_theme_settings[css_settings]', array(
'default' => '',
'type' => 'option',
'capability' => 'manage_options',
'sanitize_callback' => 'wp_filter_nohtml_kses'
));
$wp_customize->add_control( 'custom_css', array(
'section' => 'ambition_custom_css',
'settings' => 'ambition_theme_settings[css_settings]',
'type' => 'textarea'
));
/********************Home Page Blog Category Setting ******************************************/
$wp_customize->add_section(
'ambition_category_section', array(
'title' => __('Home Page Blog Category Setting','ambition'),
'description' => __('Only posts that belong to the categories selected here will be displayed on the front page. ( You may select multiple categories by holding down the CTRL key. ) ','ambition'),
'priority' => 109,
'panel' =>'ambition_theme_options'
));
$wp_customize->add_setting( 'ambition_theme_settings[ambition_categories]', array(
'default' =>array(),
'sanitize_callback' => 'prefix_sanitize_integer',
'type' => 'option',
'capability' => 'manage_options'
));
$wp_customize->add_control(
new Ambition_Customize_Category_Control(
$wp_customize,
'ambition_categories',
array(
'label' => __('Front page posts categories','ambition'),
'section' => 'ambition_category_section',
'settings' => 'ambition_theme_settings[ambition_categories]',
'type' => 'multiple-select',
)
)
);
$wp_customize->add_setting( 'ambition_theme_settings[disable_setting]', array(
'default' => 0,
'sanitize_callback' => 'prefix_sanitize_integer',
'type' => 'option',
'capability' => 'manage_options'
));
$wp_customize->add_control( 'disable_setting', array(
'label' => __('Check to Default Settings ( Uncheck to show effect on front page )', 'ambition'),
'section' => 'ambition_category_section',
'settings' => 'ambition_theme_settings[disable_setting]',
'type' => 'checkbox',
));
/********************Featured content layout setting and control ******************************************/
$wp_customize->add_section( 'featured_content', array(
'title' => __( 'Featured Content', 'ambition' ),
'description' => sprintf( __( 'Use a tag to feature your posts. If no posts match the tag, sticky posts will be displayed instead.', 'ambition' ),
esc_url( add_query_arg( 'tag', _x( 'featured', 'featured content default tag slug', 'ambition' ), admin_url( 'edit.php' ) ) ),
admin_url( 'edit.php?show_sticky=1' )
),
'priority' => 140,
'active_callback' => 'is_front_page',
'panel' =>'ambition_theme_options'
) );
$wp_customize->add_section( 'ambition_featured_content_setting', array(
'title' => __('Featured Content Setting', 'ambition'),
'priority' => 141,
'panel' =>'ambition_theme_options'
));
$wp_customize->add_setting( 'ambition_theme_settings[disable_slider]', array(
'default' => 0,
'sanitize_callback' => 'prefix_sanitize_integer',
'type' => 'option',
'capability' => 'manage_options'
));
$wp_customize->add_control( 'ambition_disable_slider', array(
'priority' =>5,
'label' => __('Check to disable Slider', 'ambition'),
'section' => 'ambition_featured_content_setting',
'settings' => 'ambition_theme_settings[disable_slider]',
'type' => 'checkbox',
));
$wp_customize->add_setting('ambition_theme_settings[ambition_secondary_text]', array(
'default' =>'',
'sanitize_callback' => 'sanitize_text_field',
'type' => 'option',
'capability' => 'manage_options'
));
$wp_customize->add_control('ambition_secondary_text', array(
'priority' =>9,
'label' => __('Slider Secondary Button Text', 'ambition'),
'section' => 'featured_content',
'settings' => 'ambition_theme_settings[ambition_secondary_text]',
'type' => 'text',
));
$wp_customize->add_setting('ambition_theme_settings[ambition_secondary_url]', array(
'default' =>'',
'sanitize_callback' => 'esc_url_raw',
'type' => 'option',
'capability' => 'manage_options'
));
$wp_customize->add_control('ambition_secondary_url', array(
'priority' =>10,
'label' => __('Slider Secondary Url', 'ambition'),
'section' => 'featured_content',
'settings' => 'ambition_theme_settings[ambition_secondary_url]',
'type' => 'text',
));
$wp_customize->add_setting('ambition_theme_settings[ambition_slider_content]', array(
'default' => 'on',
'sanitize_callback' => 'prefix_sanitize_integer',
'type' => 'option',
'capability' => 'manage_options'
));
$wp_customize->add_control('ambition_slider_content', array(
'label' => __('Slider Content', 'ambition'),
'section' => 'ambition_featured_content_setting',
'settings' => 'ambition_theme_settings[ambition_slider_content]',
'type' => 'radio',
'checked' => 'checked',
'choices' => array(
'on' => __('ON','ambition'),
'off' => __('OFF','ambition'),
),
));
$wp_customize->add_setting('ambition_theme_settings[ambition_transition_effect]', array(
'default' => 'fade',
'sanitize_callback' => 'ambition_sanitize_effect',
'type' => 'option',
'capability' => 'manage_options'
));
$wp_customize->add_control('ambition_transition_effect', array(
'label' => __('Transition Effect', 'ambition'),
'section' => 'ambition_featured_content_setting',
'settings' => 'ambition_theme_settings[ambition_transition_effect]',
'type' => 'select',
'choices' => array(
'fade' => __('Fade','ambition'),
'wipe' => __('Wipe','ambition'),
'scrollUp' => __('Scroll Up','ambition' ),
'scrollDown' => __('Scroll Down','ambition' ),
'scrollLeft' => __('Scroll Left','ambition' ),
'scrollRight' => __('Scroll Right','ambition' ),
'blindX' => __('Blind X','ambition' ),
'blindY' => __('Blind Y','ambition' ),
'blindZ' => __('Blind Z','ambition' ),
'cover' => __('Cover','ambition' ),
'shuffle' => __('Shuffle','ambition' ),
),
));
$wp_customize->add_setting('ambition_theme_settings[ambition_transition_delay]', array(
'default' => '4',
'sanitize_callback' => 'ambition_sanitize_delay_transition',
'type' => 'option',
'capability' => 'manage_options'
));
$wp_customize->add_control('ambition_transition_delay', array(
'label' => __('Transition Delay', 'ambition'),
'section' => 'ambition_featured_content_setting',
'settings' => 'ambition_theme_settings[ambition_transition_delay]',
'type' => 'text',
) );
$wp_customize->add_setting('ambition_theme_settings[ambition_transition_duration]', array(
'default' => '1',
'sanitize_callback' => 'ambition_sanitize_delay_transition',
'type' => 'option',
'capability' => 'manage_options'
));
$wp_customize->add_control('ambition_transition_duration', array(
'label' => __('Transition Duration', 'ambition'),
'section' => 'ambition_featured_content_setting',
'settings' => 'ambition_theme_settings[ambition_transition_duration]',
'type' => 'text',
) );
}
/********************Sanitize the values ******************************************/
function prefix_sanitize_integer( $input ) {
return $input;
}
function ambition_sanitize_effect( $input ) {
if ( ! in_array( $input, array( 'fade', 'wipe', 'scrollUp', 'scrollDown', 'scrollLeft', 'scrollRight', 'blindX', 'blindY', 'blindZ', 'cover', 'shuffle' ) ) ) {
$input = 'fade';
}
return $input;
}
function ambition_sanitize_delay_transition( $input ) {
if(is_numeric($input)){
return $input;
}
}
function ambition_customizer_control_scripts() {
wp_enqueue_script(
'ambition-customize-controls',
get_template_directory_uri() . '/inc/admin/js/ambition_customizer.js',
array(), '3.0',
true
);
wp_enqueue_style( 'ambition-customize-controls',
get_template_directory_uri() . '/inc/admin/css/customize-controls.css' );
}
add_action( 'customize_controls_enqueue_scripts', 'ambition_customizer_control_scripts', 0 );
function ambition_customize_custom_sections( $wp_customize ) {
// Register custom section types.
$wp_customize->register_section_type( 'Ambition_Customize_Section_Upsell' );
// Register sections.
$wp_customize->add_section(
new Ambition_Customize_Section_Upsell(
$wp_customize,
'theme_upsell',
array(
'title' => esc_html__( 'Ambition Pro', 'ambition' ),
'pro_text' => esc_html__( 'Upgrade to Pro', 'ambition' ),
'pro_url' => 'http://themehorse.com/themes/ambition-pro',
'priority' => 1,
)
)
);
}
add_action( 'customize_register', 'ambition_customize_custom_sections');
add_action('customize_register', 'ambition_textarea_register');
add_action('customize_register', 'ambition_customize_register');
?>