getWidgetAreaManager()->getOptionalWidgetAreas(); if ( is_array( $owa ) && 0 < count( $owa ) ) { foreach ( $owa as $owa_id => $each_owa ) { if ( ! isset( $each_owa['hook'] ) || ! is_string( $each_owa['hook'] ) || empty( $each_owa['hook'] ) || ( 'customize' === $each_owa['hook'] && empty( $each_owa['is_on_mobile_menu'] ) ) ) continue; $owa_hook = sanitize_text_field( $each_owa['hook'] ); $widget_num = absint( $each_owa['widget_num'] ); $section_id = 'owa_' . $owa_hook . '_' . $widget_num; $owa_name = esc_html( $each_owa['name'] ); $wp_customize->add_section( $section_id, array( 'title' => $each_owa['name'], 'panel' => 'owa' )); $setting_id_prefix = $section_id . '_'; // Enter Animation // Widget Area /* $wp_customize->add_setting( $setting_id_prefix . 'animation_enter', array( 'default' => 'none', 'transport' => 'postMessage', 'sanitize_callback' => 'sanitize_text_field', 'sanitize_js_callback' => 'sanitize_text_field', )); $wp_customize->add_control( $setting_id_prefix . 'animation_enter', array( 'section' => $section_id, 'settings' => $setting_id_prefix . 'animation_enter', 'label' => esc_html__( 'Area Animation Enter', Ace::TEXTDOMAIN ), 'type' => 'select', 'choices' => $this->animate_css['enter'], )); */ // Widget Enter $wp_customize->add_setting( $setting_id_prefix . 'widget_animation_enter', array( 'default' => 'none', 'transport' => 'postMessage', 'sanitize_callback' => array( 'AceSanitizeMethods', 'sanitizeEnterAnimation' ), 'sanitize_js_callback' => array( 'AceSanitizeMethods', 'sanitizeEnterAnimation' ), )); $wp_customize->add_control( $setting_id_prefix . 'widget_animation_enter', array( 'section' => $section_id, 'settings' => $setting_id_prefix . 'widget_animation_enter', 'label' => esc_html__( 'Enter Animation for Widget', Ace::TEXTDOMAIN ), 'type' => 'select', 'choices' => $this->animationClasses['enter'] )); // Widget Hide $wp_customize->add_setting( $setting_id_prefix . 'widget_animation_hide', array( 'default' => 'none', 'transport' => 'postMessage', 'sanitize_callback' => array( 'AceSanitizeMethods', 'sanitizeHideAnimation' ), 'sanitize_js_callback' => array( 'AceSanitizeMethods', 'sanitizeHideAnimation' ), )); $wp_customize->add_control( $setting_id_prefix . 'widget_animation_hide', array( 'section' => $section_id, 'settings' => $setting_id_prefix . 'widget_animation_hide', 'label' => esc_html__( 'Hide Animation for Widget', Ace::TEXTDOMAIN ), 'type' => 'select', 'choices' => $this->animationClasses['hide'] )); // Widget Area Background // Background Color $wp_customize->add_setting( $setting_id_prefix . 'background_color', array( 'default' => 'rgba(255,255,255,0)', 'transport' => 'postMessage', 'sanitize_callback' => array( 'AceSanitizeMethods', 'sanitizeColorValue' ), 'sanitize_js_callback' => array( 'AceSanitizeMethods', 'sanitizeColorValue' ), )); $wp_customize->add_control( new AceCustomizerAlphaColorControl( $wp_customize, $setting_id_prefix . 'background_color', array( 'label' => esc_html__( 'Background Color ( Each Area )', Ace::TEXTDOMAIN ), 'section' => $section_id, 'settings' => $setting_id_prefix . 'background_color', 'palette' => $this->palletColorSet, ))); // Background Image $wp_customize->add_setting( $setting_id_prefix . 'background_image', array( 'default' => '', 'capability' => 'edit_theme_options', 'transport' => 'postMessage', 'sanitize_callback' => 'esc_url_raw', 'sanitize_js_callback' => 'esc_url_raw', )); $wp_customize->add_control( new WP_Customize_Image_Control( $wp_customize, $setting_id_prefix . 'background_image', array( 'label' => esc_html__( 'Background Image ( Each Area )', Ace::TEXTDOMAIN ), 'section' => $section_id, 'settings' => $setting_id_prefix . 'background_image', ) )); // Background Image Size $wp_customize->add_setting( $setting_id_prefix . 'background_image_size', array( 'default' => 'auto', 'capability' => 'edit_theme_options', 'transport'=> 'postMessage', 'sanitize_callback' => array( 'AceSanitizeMethods', 'sanitizeBackgroundImageSize' ), 'sanitize_js_callback' => array( 'AceSanitizeMethods', 'sanitizeBackgroundImageSize' ), )); $wp_customize->add_control( $setting_id_prefix . 'background_image_size', array( 'section' => $section_id, 'settings' => $setting_id_prefix . 'background_image_size', 'label' => esc_html__( 'Background Size ( Each Area )', Ace::TEXTDOMAIN ), 'description' => __( 'Enter the value like "Horizontal Vertical" with units', Ace::TEXTDOMAIN ), 'type' => 'select', 'choices' => $this->backgroundImageSizes, )); // Background Image Position Row $wp_customize->add_setting( $setting_id_prefix . 'background_image_position_row', array( 'default' => 'center', 'capability' => 'edit_theme_options', 'transport' => 'postMessage', 'sanitize_callback' => array( 'AceSanitizeMethods', 'sanitizeBackgroundPositionRow' ), 'sanitize_js_callback' => array( 'AceSanitizeMethods', 'sanitizeBackgroundPositionRow' ), )); $wp_customize->add_control( $setting_id_prefix . 'background_image_position_row', array( 'section' => $section_id, 'settings' => $setting_id_prefix . 'background_image_position_row', 'label' => esc_html__( 'Background Position Row ( Each Area )', Ace::TEXTDOMAIN ), 'type' => 'select', 'choices' => $this->backgroundPositionRow, )); // Background Image Position Column $wp_customize->add_setting( $setting_id_prefix . 'background_image_position_column', array( 'default' => 'center', 'capability' => 'edit_theme_options', 'transport' => 'postMessage', 'sanitize_callback' => array( 'AceSanitizeMethods', 'sanitizeBackgroundPositionColumn' ), 'sanitize_js_callback' => array( 'AceSanitizeMethods', 'sanitizeBackgroundPositionColumn' ), )); $wp_customize->add_control( $setting_id_prefix . 'background_image_position_column', array( 'section' => $section_id, 'settings' => $setting_id_prefix . 'background_image_position_column', 'label' => esc_html__( 'Background Position Column ( Each Area )', Ace::TEXTDOMAIN ), 'type' => 'select', 'choices' => $this->backgroundPositionColumn, )); // Background Image Repeat $wp_customize->add_setting( $setting_id_prefix . 'background_image_repeat', array( 'default' => 'no-repeat', 'capability' => 'edit_theme_options', 'transport' => 'postMessage', 'sanitize_callback' => array( 'AceSanitizeMethods', 'sanitizeBackgroundRepeat' ), 'sanitize_js_callback' => array( 'AceSanitizeMethods', 'sanitizeBackgroundRepeat' ), )); $wp_customize->add_control( $setting_id_prefix . 'background_image_repeat', array( 'section' => $section_id, 'settings' => $setting_id_prefix . 'background_image_repeat', 'label' => esc_html__( 'Background Repeat ( Each Area )', Ace::TEXTDOMAIN ), 'type' => 'select', 'choices' => $this->backgroundRepeats, )); // Background Image Attachment $wp_customize->add_setting( $setting_id_prefix . 'background_image_attachment', array( 'default' => 'scroll', 'capability' => 'edit_theme_options', 'transport' => 'postMessage', 'sanitize_callback' => array( 'AceSanitizeMethods', 'sanitizeBackgroundAttachment' ), 'sanitize_js_callback' => array( 'AceSanitizeMethods', 'sanitizeBackgroundAttachment' ), )); $wp_customize->add_control( $setting_id_prefix . 'background_image_attachment', array( 'section' => $section_id, 'settings' => $setting_id_prefix . 'background_image_attachment', 'label' => esc_html__( 'Background Attachment ( Each Area )', Ace::TEXTDOMAIN ), 'type' => 'select', 'choices' => $this->backgroundAttachments, )); // Padding $wp_customize->add_setting( $setting_id_prefix . 'padding', array( 'default' => 0, 'capability' => 'edit_theme_options', 'transport' => 'postMessage', 'sanitize_callback' => 'absint', 'sanitize_js_callback' => 'absint', )); $wp_customize->add_control( $setting_id_prefix . 'padding', array( 'section' => $section_id, 'settings' => $setting_id_prefix . 'padding', 'label' => esc_html__( 'Padding for Widget Area', Ace::TEXTDOMAIN ), 'type' => 'range', 'input_attrs' => array( 'min' => 0, 'max' => 100, 'step' => 1, 'value' => absint( isset( $this->theme_mods[ $setting_id_prefix . 'padding'] ) ? $this->theme_mods[ $setting_id_prefix . 'padding'] : 0 ), 'id' => $setting_id_prefix . 'padding_id', 'style' => 'width:100%;', ), )); // Border $wp_customize->add_setting( $setting_id_prefix . 'border', array( 'default' => false, 'transport' => 'postMessage', 'sanitize_callback' => array( 'AceSanitizeMethods', 'sanitizeCheckbox' ), 'sanitize_js_callback' => array( 'AceSanitizeMethods', 'sanitizeCheckbox' ), )); $wp_customize->add_control( $setting_id_prefix . 'border', array( 'section' => $section_id, 'settings' => $setting_id_prefix . 'border', 'label' => esc_html__( 'Border', Ace::TEXTDOMAIN ), 'type' => 'checkbox', )); // Widget // Layout // Widget Space $wp_customize->add_setting( $setting_id_prefix . 'widget_space', array( 'default' => 0, 'capability' => 'edit_theme_options', 'transport' => 'postMessage', 'sanitize_callback' => 'absint', 'sanitize_js_callback' => 'absint', )); $wp_customize->add_control( $setting_id_prefix . 'widget_space', array( 'section' => $section_id, 'settings' => $setting_id_prefix . 'widget_space', 'label' => esc_html__( 'Space between Widgets', Ace::TEXTDOMAIN ), 'type' => 'range', 'input_attrs' => array( 'min' => 0, 'max' => 10, 'step' => 1, 'value' => absint( isset( $this->theme_mods[ $setting_id_prefix . 'widget_space'] ) ? $this->theme_mods[ $setting_id_prefix . 'widget_space'] : 0 ), 'id' => $setting_id_prefix . 'widget_space_id', 'style' => 'width:100%;', ), )); // Title // Font Family $wp_customize->add_setting( $setting_id_prefix . 'title_font_family', array( 'default' => $this->basicFontFamily['basic'], 'transport' => 'postMessage', 'sanitize_callback' => array( 'AceSanitizeMethods', 'sanitizeFontFamilies' ), 'sanitize_js_callback' => array( 'AceSanitizeMethods', 'sanitizeFontFamilies' ), )); $wp_customize->add_control( $setting_id_prefix . 'title_font_family', array( 'section' => $section_id, 'settings' => $setting_id_prefix . 'title_font_family', 'label' => esc_html__( 'Font Family', Ace::TEXTDOMAIN ), 'type' => 'select', 'choices' => $this->fontFamilies, )); // Color $wp_customize->add_setting( $setting_id_prefix . 'title_color', array( 'default' => 'rgba(0,0,0,1)', 'transport' => 'postMessage', 'sanitize_callback' => array( 'AceSanitizeMethods', 'sanitizeColorValue' ), 'sanitize_js_callback' => array( 'AceSanitizeMethods', 'sanitizeColorValue' ), )); $wp_customize->add_control( new AceCustomizerAlphaColorControl( $wp_customize, $setting_id_prefix . 'title_color', array( 'label' => esc_html__( 'Title Color', Ace::TEXTDOMAIN ), 'section' => $section_id, 'settings' => $setting_id_prefix . 'title_color', 'palette' => $this->palletColorSet, ))); // Text Align $wp_customize->add_setting( $setting_id_prefix . 'title_text_align', array( 'default' => 'center', 'transport' => 'postMessage', 'sanitize_callback' => array( 'AceSanitizeMethods', 'sanitizeTextAlign' ), 'sanitize_js_callback' => array( 'AceSanitizeMethods', 'sanitizeTextAlign' ), )); $wp_customize->add_control( $setting_id_prefix . 'title_text_align', array( 'section' => $section_id, 'settings' => $setting_id_prefix . 'title_text_align', 'label' => esc_html__( 'Title Text Align', Ace::TEXTDOMAIN ), 'type' => 'select', 'choices' => $this->textAlign, )); // Text // Font Family $wp_customize->add_setting( $setting_id_prefix . 'text_font_family', array( 'default' => $this->basicFontFamily['basic'], 'transport' => 'postMessage', 'sanitize_callback' => array( 'AceSanitizeMethods', 'sanitizeFontFamilies' ), 'sanitize_js_callback' => array( 'AceSanitizeMethods', 'sanitizeFontFamilies' ), )); $wp_customize->add_control( $setting_id_prefix . 'text_font_family', array( 'section' => $section_id, 'settings' => $setting_id_prefix . 'text_font_family', 'label' => esc_html__( 'Text Font Family', Ace::TEXTDOMAIN ), 'type' => 'select', 'choices' => $this->fontFamilies, )); // Text Color $wp_customize->add_setting( $setting_id_prefix . 'text_color', array( 'default' => 'rgba(0,0,0,1)', 'transport' => 'postMessage', 'sanitize_callback' => array( 'AceSanitizeMethods', 'sanitizeColorValue' ), 'sanitize_js_callback' => array( 'AceSanitizeMethods', 'sanitizeColorValue' ), )); $wp_customize->add_control( new AceCustomizerAlphaColorControl( $wp_customize, $setting_id_prefix . 'text_color', array( 'label' => esc_html__( 'Text Color', Ace::TEXTDOMAIN ), 'section' => $section_id, 'settings' => $setting_id_prefix . 'text_color', 'palette' => $this->palletColorSet, ))); // Link Text Color $wp_customize->add_setting( $setting_id_prefix . 'text_link_color', array( 'default' => 'rgba(100,100,100,1)', 'transport' => 'postMessage', 'sanitize_callback' => array( 'AceSanitizeMethods', 'sanitizeColorValue' ), 'sanitize_js_callback' => array( 'AceSanitizeMethods', 'sanitizeColorValue' ), )); $wp_customize->add_control( new AceCustomizerAlphaColorControl( $wp_customize, $setting_id_prefix . 'text_link_color', array( 'label' => esc_html__( 'Link Text Color', Ace::TEXTDOMAIN ), 'section' => $section_id, 'settings' => $setting_id_prefix . 'text_link_color', 'palette' => $this->palletColorSet, ))); // $wp_customize->add_setting( $setting_id_prefix . 'setting_tabs', array( 'sanitize_callback' => 'sanitize_text_field', ) ); $wp_customize->add_control( new AceCustomizerTabsControl( $wp_customize, $setting_id_prefix . 'setting_tabs', array( /* Make sure you edit the following parameters*/ //'panel' => 'owa', 'section' => $section_id, 'tabs' => array( 'area' => array( 'nicename' => esc_html__( 'Widget Area', Ace::TEXTDOMAIN ), 'icon' => 'font', 'controls' => array( $setting_id_prefix . 'background_color', $setting_id_prefix . 'background_image', $setting_id_prefix . 'background_image_size', $setting_id_prefix . 'background_image_position_row', $setting_id_prefix . 'background_image_position_column', $setting_id_prefix . 'background_image_repeat', $setting_id_prefix . 'background_image_attachment', $setting_id_prefix . 'padding', $setting_id_prefix . 'border', ), ), 'widget' => array( 'nicename' => esc_html__( 'Widget', Ace::TEXTDOMAIN ), 'icon' => 'text-height', 'controls' => array( $setting_id_prefix . 'widget_animation_enter', $setting_id_prefix . 'widget_animation_hide', $setting_id_prefix . 'widget_space', $setting_id_prefix . 'title_font_family', $setting_id_prefix . 'title_color', $setting_id_prefix . 'title_text_align', $setting_id_prefix . 'text_font_family', $setting_id_prefix . 'text_link_color', $setting_id_prefix . 'text_color', ), ), ), ) ) ); } }