summaryrefslogtreecommitdiff
path: root/inc/customizer/configurations/builder/footer
diff options
context:
space:
mode:
authorZach van Rijn <me@zv.io>2021-07-21 14:54:07 -0500
committerZach van Rijn <me@zv.io>2021-07-21 14:54:07 -0500
commit9d4123cee1867ee7199b06bdc92d40611f547ecc (patch)
tree6d864e2725242863afed1f8ba12d9c7a9bc63a69 /inc/customizer/configurations/builder/footer
downloadblog-ng-9d4123cee1867ee7199b06bdc92d40611f547ecc.tar.gz
blog-ng-9d4123cee1867ee7199b06bdc92d40611f547ecc.tar.bz2
blog-ng-9d4123cee1867ee7199b06bdc92d40611f547ecc.tar.xz
blog-ng-9d4123cee1867ee7199b06bdc92d40611f547ecc.zip
Initial unmodified import from Astra (Version: 3.6.5) @ /wp-content/themes/astra/.
Diffstat (limited to 'inc/customizer/configurations/builder/footer')
-rw-r--r--inc/customizer/configurations/builder/footer/class-astra-customizer-above-footer-configs.php284
-rw-r--r--inc/customizer/configurations/builder/footer/class-astra-customizer-below-footer-configs.php284
-rw-r--r--inc/customizer/configurations/builder/footer/class-astra-customizer-copyright-configs.php165
-rw-r--r--inc/customizer/configurations/builder/footer/class-astra-customizer-footer-builder-configs.php314
-rw-r--r--inc/customizer/configurations/builder/footer/class-astra-customizer-footer-menu-configs.php371
-rw-r--r--inc/customizer/configurations/builder/footer/class-astra-customizer-footer-social-icons-configs.php49
-rw-r--r--inc/customizer/configurations/builder/footer/class-astra-customizer-primary-footer-configs.php268
-rw-r--r--inc/customizer/configurations/builder/footer/class-astra-footer-button-component-configs.php48
-rw-r--r--inc/customizer/configurations/builder/footer/class-astra-footer-html-component-configs.php48
-rw-r--r--inc/customizer/configurations/builder/footer/class-astra-footer-widget-component-configs.php51
10 files changed, 1882 insertions, 0 deletions
diff --git a/inc/customizer/configurations/builder/footer/class-astra-customizer-above-footer-configs.php b/inc/customizer/configurations/builder/footer/class-astra-customizer-above-footer-configs.php
new file mode 100644
index 0000000..c42652e
--- /dev/null
+++ b/inc/customizer/configurations/builder/footer/class-astra-customizer-above-footer-configs.php
@@ -0,0 +1,284 @@
+<?php
+/**
+ * Astra Theme Customizer Configuration Above footer.
+ *
+ * @package astra-builder
+ * @author Astra
+ * @copyright Copyright (c) 2020, Astra
+ * @link https://wpastra.com/
+ * @since 3.0.0
+ */
+
+// No direct access, please.
+if ( ! defined( 'ABSPATH' ) ) {
+ exit;
+}
+
+if ( class_exists( 'Astra_Customizer_Config_Base' ) ) {
+
+ /**
+ * Register Above footer Customizer Configurations.
+ *
+ * @since 3.0.0
+ */
+ class Astra_Customizer_Above_Footer_Configs extends Astra_Customizer_Config_Base {
+
+ /**
+ * Register Builder Above Customizer Configurations.
+ *
+ * @param Array $configurations Astra Customizer Configurations.
+ * @param WP_Customize_Manager $wp_customize instance of WP_Customize_Manager.
+ * @since 3.0.0
+ * @return Array Astra Customizer Configurations with updated configurations.
+ */
+ public function register_configuration( $configurations, $wp_customize ) {
+
+ $_section = 'section-above-footer-builder';
+
+ $column_count = range( 1, Astra_Builder_Helper::$num_of_footer_columns );
+ $column_count = array_combine( $column_count, $column_count );
+
+ $_configs = array(
+
+ // Section: Above Footer.
+ array(
+ 'name' => $_section,
+ 'type' => 'section',
+ 'title' => __( 'Above Footer', 'astra' ),
+ 'panel' => 'panel-footer-builder-group',
+ 'priority' => 30,
+ ),
+
+ /**
+ * Option: Footer Builder Tabs
+ */
+ array(
+ 'name' => $_section . '-ast-context-tabs',
+ 'section' => $_section,
+ 'type' => 'control',
+ 'control' => 'ast-builder-header-control',
+ 'priority' => 0,
+ 'description' => '',
+ ),
+
+ /**
+ * Option: Column count
+ */
+ array(
+ 'name' => ASTRA_THEME_SETTINGS . '[hba-footer-column]',
+ 'default' => astra_get_option( 'hba-footer-column' ),
+ 'type' => 'control',
+ 'control' => 'ast-select',
+ 'section' => $_section,
+ 'priority' => 2,
+ 'title' => __( 'Column', 'astra' ),
+ 'choices' => $column_count,
+ 'context' => Astra_Builder_Helper::$general_tab,
+ 'transport' => 'postMessage',
+ 'partial' => array(
+ 'selector' => '.site-above-footer-wrap',
+ 'container_inclusive' => false,
+ 'render_callback' => array( Astra_Builder_Footer::get_instance(), 'above_footer' ),
+ ),
+ ),
+
+ /**
+ * Option: Row Layout
+ */
+ array(
+ 'name' => ASTRA_THEME_SETTINGS . '[hba-footer-layout]',
+ 'section' => $_section,
+ 'default' => astra_get_option( 'hba-footer-layout' ),
+ 'priority' => 3,
+ 'title' => __( 'Layout', 'astra' ),
+ 'type' => 'control',
+ 'control' => 'ast-row-layout',
+ 'context' => Astra_Builder_Helper::$general_tab,
+ 'input_attrs' => array(
+ 'responsive' => true,
+ 'footer' => 'primary',
+ 'layout' => Astra_Builder_Helper::$footer_row_layouts,
+ ),
+ 'divider' => array( 'ast_class' => 'ast-bottom-divider' ),
+ 'transport' => 'postMessage',
+ ),
+
+ /**
+ * Option: Layout Width
+ */
+ array(
+ 'name' => ASTRA_THEME_SETTINGS . '[hba-footer-layout-width]',
+ 'default' => astra_get_option( 'hba-footer-layout-width' ),
+ 'type' => 'control',
+ 'control' => 'ast-selector',
+ 'section' => $_section,
+ 'priority' => 25,
+ 'title' => __( 'Width', 'astra' ),
+ 'choices' => array(
+ 'full' => __( 'Full Width', 'astra' ),
+ 'content' => __( 'Content Width', 'astra' ),
+ ),
+ 'suffix' => '',
+ 'context' => Astra_Builder_Helper::$general_tab,
+ 'transport' => 'postMessage',
+ 'renderAs' => 'text',
+ 'responsive' => false,
+ 'divider' => array( 'ast_class' => 'ast-bottom-divider' ),
+ ),
+
+ // Section: Above Footer Height.
+ array(
+ 'name' => ASTRA_THEME_SETTINGS . '[hba-footer-height]',
+ 'section' => $_section,
+ 'transport' => 'postMessage',
+ 'default' => astra_get_option( 'hba-footer-height' ),
+ 'priority' => 30,
+ 'title' => __( 'Height', 'astra' ),
+ 'suffix' => 'px',
+ 'type' => 'control',
+ 'control' => 'ast-slider',
+ 'input_attrs' => array(
+ 'min' => 30,
+ 'step' => 1,
+ 'max' => 600,
+ ),
+ 'divider' => array( 'ast_class' => 'ast-bottom-divider' ),
+ 'context' => Astra_Builder_Helper::$general_tab,
+ ),
+
+ /**
+ * Option: Vertical Alignment
+ */
+ array(
+ 'name' => ASTRA_THEME_SETTINGS . '[hba-footer-vertical-alignment]',
+ 'default' => astra_get_option( 'hba-footer-vertical-alignment' ),
+ 'type' => 'control',
+ 'control' => 'ast-selector',
+ 'section' => $_section,
+ 'priority' => 34,
+ 'title' => __( 'Vertical Alignment', 'astra' ),
+ 'choices' => array(
+ 'flex-start' => __( 'Top', 'astra' ),
+ 'center' => __( 'Middle', 'astra' ),
+ 'flex-end' => __( 'Bottom', 'astra' ),
+ ),
+ 'context' => Astra_Builder_Helper::$general_tab,
+ 'transport' => 'postMessage',
+ 'renderAs' => 'text',
+ 'responsive' => false,
+ ),
+
+ array(
+ 'name' => ASTRA_THEME_SETTINGS . '[hba-stack]',
+ 'default' => astra_get_option( 'hba-stack' ),
+ 'type' => 'control',
+ 'control' => 'ast-selector',
+ 'section' => $_section,
+ 'priority' => 5,
+ 'title' => __( 'Inner Elements Layout', 'astra' ),
+ 'choices' => array(
+ 'stack' => __( 'Stack', 'astra' ),
+ 'inline' => __( 'Inline', 'astra' ),
+ ),
+ 'context' => Astra_Builder_Helper::$general_tab,
+ 'transport' => 'postMessage',
+ 'partial' => array(
+ 'selector' => '.site-above-footer-wrap',
+ 'container_inclusive' => false,
+ 'render_callback' => array( Astra_Builder_Footer::get_instance(), 'above_footer' ),
+ ),
+ 'renderAs' => 'text',
+ 'divider' => array( 'ast_class' => 'ast-bottom-divider' ),
+ ),
+
+ // Section: Above Footer Border.
+ array(
+ 'name' => ASTRA_THEME_SETTINGS . '[hba-footer-separator]',
+ 'section' => $_section,
+ 'priority' => 40,
+ 'transport' => 'postMessage',
+ 'default' => astra_get_option( 'hba-footer-separator' ),
+ 'title' => __( 'Top Border Size', 'astra' ),
+ 'suffix' => 'px',
+ 'type' => 'control',
+ 'control' => 'ast-slider',
+ 'input_attrs' => array(
+ 'min' => 0,
+ 'step' => 1,
+ 'max' => 600,
+ ),
+ 'divider' => array( 'ast_class' => 'ast-bottom-divider' ),
+ 'context' => Astra_Builder_Helper::$design_tab,
+ ),
+
+ // Section: Above Footer Border Color.
+ array(
+ 'name' => ASTRA_THEME_SETTINGS . '[hba-footer-top-border-color]',
+ 'transport' => 'postMessage',
+ 'default' => astra_get_option( 'hba-footer-top-border-color' ),
+ 'type' => 'control',
+ 'control' => 'ast-color',
+ 'sanitize_callback' => array( 'Astra_Customizer_Sanitizes', 'sanitize_alpha_color' ),
+ 'section' => $_section,
+ 'priority' => 50,
+ 'title' => __( 'Border Color', 'astra' ),
+ 'context' => array(
+ Astra_Builder_Helper::$design_tab_config,
+ array(
+ 'setting' => ASTRA_THEME_SETTINGS . '[hba-footer-separator]',
+ 'operator' => '>=',
+ 'value' => 1,
+ ),
+ ),
+ ),
+
+ // Option: Above Footer Background styling.
+ array(
+ 'name' => ASTRA_THEME_SETTINGS . '[hba-footer-bg-obj-responsive]',
+ 'type' => 'control',
+ 'section' => $_section,
+ 'control' => 'ast-responsive-background',
+ 'transport' => 'postMessage',
+ 'default' => astra_get_option( 'hba-footer-bg-obj-responsive' ),
+ 'title' => __( 'Background', 'astra' ),
+ 'priority' => 70,
+ 'context' => Astra_Builder_Helper::$design_tab,
+ 'divider' => array( 'ast_class' => 'ast-bottom-divider' ),
+ ),
+
+ /**
+ * Option: Inner Spacing
+ */
+ array(
+ 'name' => ASTRA_THEME_SETTINGS . '[hba-inner-spacing]',
+ 'section' => $_section,
+ 'priority' => 205,
+ 'transport' => 'postMessage',
+ 'default' => astra_get_option( 'hba-inner-spacing' ),
+ 'title' => __( 'Inner Column Spacing', 'astra' ),
+ 'suffix' => 'px',
+ 'type' => 'control',
+ 'control' => 'ast-responsive-slider',
+ 'sanitize_callback' => array( 'Astra_Customizer_Sanitizes', 'sanitize_responsive_slider' ),
+ 'input_attrs' => array(
+ 'min' => 0,
+ 'step' => 1,
+ 'max' => 200,
+ ),
+ 'context' => Astra_Builder_Helper::$design_tab,
+ ),
+ );
+
+ $_configs = array_merge( $_configs, Astra_Builder_Base_Configuration::prepare_advanced_tab( $_section ) );
+
+ $_configs = array_merge( $_configs, Astra_Builder_Base_Configuration::prepare_visibility_tab( $_section, 'footer' ) );
+
+ return array_merge( $configurations, $_configs );
+ }
+ }
+
+ /**
+ * Kicking this off by creating object of this class.
+ */
+ new Astra_Customizer_Above_Footer_Configs();
+}
diff --git a/inc/customizer/configurations/builder/footer/class-astra-customizer-below-footer-configs.php b/inc/customizer/configurations/builder/footer/class-astra-customizer-below-footer-configs.php
new file mode 100644
index 0000000..63d57fc
--- /dev/null
+++ b/inc/customizer/configurations/builder/footer/class-astra-customizer-below-footer-configs.php
@@ -0,0 +1,284 @@
+<?php
+/**
+ * Astra Theme Customizer Configuration Below footer.
+ *
+ * @package astra-builder
+ * @author Astra
+ * @copyright Copyright (c) 2020, Astra
+ * @link https://wpastra.com/
+ * @since 3.0.0
+ */
+
+// No direct access, please.
+if ( ! defined( 'ABSPATH' ) ) {
+ exit;
+}
+
+if ( class_exists( 'Astra_Customizer_Config_Base' ) ) {
+
+ /**
+ * Register Below footer Customizer Configurations.
+ *
+ * @since 3.0.0
+ */
+ class Astra_Customizer_Below_Footer_Configs extends Astra_Customizer_Config_Base {
+
+ /**
+ * Register Builder Below footer Customizer Configurations.
+ *
+ * @param Array $configurations Astra Customizer Configurations.
+ * @param WP_Customize_Manager $wp_customize instance of WP_Customize_Manager.
+ * @since 3.0.0
+ * @return Array Astra Customizer Configurations with updated configurations.
+ */
+ public function register_configuration( $configurations, $wp_customize ) {
+
+ $_section = 'section-below-footer-builder';
+
+ $column_count = range( 1, Astra_Builder_Helper::$num_of_footer_columns );
+ $column_count = array_combine( $column_count, $column_count );
+
+ $_configs = array(
+
+ // Section: Below Footer.
+ array(
+ 'name' => $_section,
+ 'type' => 'section',
+ 'title' => __( 'Below Footer', 'astra' ),
+ 'panel' => 'panel-footer-builder-group',
+ 'priority' => 30,
+ ),
+
+ /**
+ * Option: Footer Builder Tabs
+ */
+ array(
+ 'name' => $_section . '-ast-context-tabs',
+ 'section' => $_section,
+ 'type' => 'control',
+ 'control' => 'ast-builder-header-control',
+ 'priority' => 0,
+ 'description' => '',
+ ),
+
+ /**
+ * Option: Column count
+ */
+ array(
+ 'name' => ASTRA_THEME_SETTINGS . '[hbb-footer-column]',
+ 'default' => astra_get_option( 'hbb-footer-column' ),
+ 'type' => 'control',
+ 'control' => 'ast-select',
+ 'section' => $_section,
+ 'priority' => 2,
+ 'title' => __( 'Column', 'astra' ),
+ 'choices' => $column_count,
+ 'context' => Astra_Builder_Helper::$general_tab,
+ 'transport' => 'postMessage',
+ 'partial' => array(
+ 'selector' => '.site-below-footer-wrap',
+ 'container_inclusive' => false,
+ 'render_callback' => array( Astra_Builder_Footer::get_instance(), 'below_footer' ),
+ ),
+ ),
+
+ /**
+ * Option: Row Layout
+ */
+ array(
+ 'name' => ASTRA_THEME_SETTINGS . '[hbb-footer-layout]',
+ 'section' => $_section,
+ 'default' => astra_get_option( 'hbb-footer-layout' ),
+ 'priority' => 3,
+ 'title' => __( 'Layout', 'astra' ),
+ 'type' => 'control',
+ 'control' => 'ast-row-layout',
+ 'context' => Astra_Builder_Helper::$general_tab,
+ 'input_attrs' => array(
+ 'responsive' => true,
+ 'footer' => 'primary',
+ 'layout' => Astra_Builder_Helper::$footer_row_layouts,
+ ),
+ 'divider' => array( 'ast_class' => 'ast-bottom-divider' ),
+ 'transport' => 'postMessage',
+ ),
+
+ /**
+ * Option: Layout Width
+ */
+ array(
+ 'name' => ASTRA_THEME_SETTINGS . '[hbb-footer-layout-width]',
+ 'default' => astra_get_option( 'hbb-footer-layout-width' ),
+ 'type' => 'control',
+ 'control' => 'ast-selector',
+ 'section' => $_section,
+ 'priority' => 25,
+ 'title' => __( 'Width', 'astra' ),
+ 'choices' => array(
+ 'full' => __( 'Full Width', 'astra' ),
+ 'content' => __( 'Content Width', 'astra' ),
+ ),
+ 'suffix' => '',
+ 'context' => Astra_Builder_Helper::$general_tab,
+ 'transport' => 'postMessage',
+ 'renderAs' => 'text',
+ 'responsive' => false,
+ 'divider' => array( 'ast_class' => 'ast-bottom-divider' ),
+ ),
+
+ // Section: Below Footer Height.
+ array(
+ 'name' => ASTRA_THEME_SETTINGS . '[hbb-footer-height]',
+ 'section' => $_section,
+ 'transport' => 'postMessage',
+ 'default' => astra_get_option( 'hbb-footer-height' ),
+ 'priority' => 30,
+ 'title' => __( 'Height', 'astra' ),
+ 'type' => 'control',
+ 'control' => 'ast-slider',
+ 'suffix' => 'px',
+ 'input_attrs' => array(
+ 'min' => 30,
+ 'step' => 1,
+ 'max' => 600,
+ ),
+ 'divider' => array( 'ast_class' => 'ast-bottom-divider' ),
+ 'context' => Astra_Builder_Helper::$general_tab,
+ ),
+
+ /**
+ * Option: Vertical Alignment
+ */
+ array(
+ 'name' => ASTRA_THEME_SETTINGS . '[hbb-footer-vertical-alignment]',
+ 'default' => astra_get_option( 'hbb-footer-vertical-alignment' ),
+ 'type' => 'control',
+ 'control' => 'ast-selector',
+ 'section' => $_section,
+ 'priority' => 34,
+ 'title' => __( 'Vertical Alignment', 'astra' ),
+ 'choices' => array(
+ 'flex-start' => __( 'Top', 'astra' ),
+ 'center' => __( 'Middle', 'astra' ),
+ 'flex-end' => __( 'Bottom', 'astra' ),
+ ),
+ 'context' => Astra_Builder_Helper::$general_tab,
+ 'transport' => 'postMessage',
+ 'renderAs' => 'text',
+ 'responsive' => false,
+ ),
+
+ array(
+ 'name' => ASTRA_THEME_SETTINGS . '[hbb-stack]',
+ 'default' => astra_get_option( 'hbb-stack' ),
+ 'type' => 'control',
+ 'control' => 'ast-selector',
+ 'section' => $_section,
+ 'priority' => 5,
+ 'title' => __( 'Inner Elements Layout', 'astra' ),
+ 'choices' => array(
+ 'stack' => __( 'Stack', 'astra' ),
+ 'inline' => __( 'Inline', 'astra' ),
+ ),
+ 'context' => Astra_Builder_Helper::$general_tab,
+ 'transport' => 'postMessage',
+ 'partial' => array(
+ 'selector' => '.site-below-footer-wrap',
+ 'container_inclusive' => false,
+ 'render_callback' => array( Astra_Builder_Footer::get_instance(), 'below_footer' ),
+ ),
+ 'renderAs' => 'text',
+ 'divider' => array( 'ast_class' => 'ast-bottom-divider' ),
+ ),
+
+ // Section: Below Footer Border.
+ array(
+ 'name' => ASTRA_THEME_SETTINGS . '[hbb-footer-separator]',
+ 'section' => $_section,
+ 'priority' => 40,
+ 'transport' => 'postMessage',
+ 'default' => astra_get_option( 'hbb-footer-separator' ),
+ 'title' => __( 'Top Border Size', 'astra' ),
+ 'suffix' => 'px',
+ 'type' => 'control',
+ 'control' => 'ast-slider',
+ 'input_attrs' => array(
+ 'min' => 0,
+ 'step' => 1,
+ 'max' => 600,
+ ),
+ 'context' => Astra_Builder_Helper::$design_tab,
+ ),
+
+ // Section: Below Footer Border Color.
+ array(
+ 'name' => ASTRA_THEME_SETTINGS . '[hbb-footer-top-border-color]',
+ 'transport' => 'postMessage',
+ 'default' => astra_get_option( 'hbb-footer-top-border-color' ),
+ 'type' => 'control',
+ 'control' => 'ast-color',
+ 'sanitize_callback' => array( 'Astra_Customizer_Sanitizes', 'sanitize_alpha_color' ),
+ 'section' => $_section,
+ 'priority' => 50,
+ 'title' => __( 'Border Color', 'astra' ),
+ 'context' => array(
+ Astra_Builder_Helper::$design_tab_config,
+ array(
+ ASTRA_THEME_SETTINGS . '[hbb-footer-separator]',
+ 'operator' => '>=',
+ 'value' => 1,
+ ),
+ ),
+ 'divider' => array( 'ast_class' => 'ast-bottom-divider' ),
+ ),
+
+ // Option: Below Footer Background styling.
+ array(
+ 'name' => ASTRA_THEME_SETTINGS . '[hbb-footer-bg-obj-responsive]',
+ 'type' => 'control',
+ 'section' => $_section,
+ 'control' => 'ast-responsive-background',
+ 'transport' => 'postMessage',
+ 'default' => astra_get_option( 'hbb-footer-bg-obj-responsive' ),
+ 'title' => __( 'Background', 'astra' ),
+ 'priority' => 70,
+ 'divider' => array( 'ast_class' => 'ast-bottom-divider' ),
+ 'context' => Astra_Builder_Helper::$design_tab,
+ ),
+
+ /**
+ * Option: Inner Spacing
+ */
+ array(
+ 'name' => ASTRA_THEME_SETTINGS . '[hbb-inner-spacing]',
+ 'section' => $_section,
+ 'priority' => 205,
+ 'transport' => 'postMessage',
+ 'default' => astra_get_option( 'hbb-inner-spacing' ),
+ 'title' => __( 'Inner Column Spacing', 'astra' ),
+ 'suffix' => 'px',
+ 'type' => 'control',
+ 'control' => 'ast-responsive-slider',
+ 'sanitize_callback' => array( 'Astra_Customizer_Sanitizes', 'sanitize_responsive_slider' ),
+ 'input_attrs' => array(
+ 'min' => 0,
+ 'step' => 1,
+ 'max' => 200,
+ ),
+ 'context' => Astra_Builder_Helper::$design_tab,
+ ),
+ );
+
+ $_configs = array_merge( $_configs, Astra_Builder_Base_Configuration::prepare_advanced_tab( $_section ) );
+
+ $_configs = array_merge( $_configs, Astra_Builder_Base_Configuration::prepare_visibility_tab( $_section, 'footer' ) );
+
+ return array_merge( $configurations, $_configs );
+ }
+ }
+
+ /**
+ * Kicking this off by creating object of this class.
+ */
+ new Astra_Customizer_Below_Footer_Configs();
+}
diff --git a/inc/customizer/configurations/builder/footer/class-astra-customizer-copyright-configs.php b/inc/customizer/configurations/builder/footer/class-astra-customizer-copyright-configs.php
new file mode 100644
index 0000000..b5efa0a
--- /dev/null
+++ b/inc/customizer/configurations/builder/footer/class-astra-customizer-copyright-configs.php
@@ -0,0 +1,165 @@
+<?php
+/**
+ * Footer Copyright Configuration Builder.
+ *
+ * @package astra-builder
+ * @author Astra
+ * @copyright Copyright (c) 2020, Astra
+ * @link https://wpastra.com/
+ * @since 3.0.0
+ */
+
+// No direct access, please.
+if ( ! defined( 'ABSPATH' ) ) {
+ exit;
+}
+
+if ( ! class_exists( 'Astra_Customizer_Config_Base' ) ) {
+ return;
+}
+
+/**
+ * Register Builder Customizer Configurations.
+ *
+ * @since 3.0.0
+ */
+class Astra_Customizer_Copyright_Configs extends Astra_Customizer_Config_Base {
+
+
+ /**
+ * Register Builder Customizer Configurations.
+ *
+ * @param Array $configurations Astra Customizer Configurations.
+ * @param WP_Customize_Manager $wp_customize instance of WP_Customize_Manager.
+ * @since 3.0.0
+ * @return Array Astra Customizer Configurations with updated configurations.
+ */
+ public function register_configuration( $configurations, $wp_customize ) {
+
+ $_section = 'section-footer-copyright';
+ $_configs = array(
+
+ /*
+ * Footer Builder section
+ */
+ array(
+ 'name' => $_section,
+ 'type' => 'section',
+ 'priority' => 5,
+ 'title' => __( 'Copyright', 'astra' ),
+ 'panel' => 'panel-footer-builder-group',
+ ),
+
+ /**
+ * Option: Footer Builder Tabs
+ */
+ array(
+ 'name' => $_section . '-ast-context-tabs',
+ 'section' => $_section,
+ 'type' => 'control',
+ 'control' => 'ast-builder-header-control',
+ 'priority' => 0,
+ 'description' => '',
+ ),
+
+ /**
+ * Option: Footer Copyright Html Editor.
+ */
+ array(
+ 'name' => ASTRA_THEME_SETTINGS . '[footer-copyright-editor]',
+ 'type' => 'control',
+ 'control' => 'ast-html-editor',
+ 'section' => $_section,
+ 'transport' => 'postMessage',
+ 'priority' => 4,
+ 'default' => astra_get_option( 'footer-copyright-editor', 'Copyright [copyright] [current_year] [site_title] | Powered by [theme_author]' ),
+ 'input_attrs' => array(
+ 'id' => 'ast-footer-copyright',
+ ),
+ 'partial' => array(
+ 'selector' => '.ast-footer-copyright',
+ 'container_inclusive' => true,
+ 'render_callback' => array( Astra_Builder_Footer::get_instance(), 'footer_copyright' ),
+ ),
+ 'context' => Astra_Builder_Helper::$general_tab,
+ ),
+
+ /**
+ * Option: Column Alignment
+ */
+ array(
+ 'name' => ASTRA_THEME_SETTINGS . '[footer-copyright-alignment]',
+ 'default' => astra_get_option( 'footer-copyright-alignment' ),
+ 'type' => 'control',
+ 'control' => 'ast-selector',
+ 'section' => $_section,
+ 'priority' => 6,
+ 'title' => __( 'Alignment', 'astra' ),
+ 'context' => Astra_Builder_Helper::$general_tab,
+ 'transport' => 'postMessage',
+ 'choices' => array(
+ 'left' => 'align-left',
+ 'center' => 'align-center',
+ 'right' => 'align-right',
+ ),
+ 'divider' => array( 'ast_class' => 'ast-top-divider' ),
+ ),
+
+ /**
+ * Option: Text Color.
+ */
+ array(
+ 'name' => ASTRA_THEME_SETTINGS . '[footer-copyright-color]',
+ 'default' => astra_get_option( 'footer-copyright-color' ),
+ 'type' => 'control',
+ 'section' => $_section,
+ 'priority' => 8,
+ 'transport' => 'postMessage',
+ 'control' => 'ast-color',
+ 'sanitize_callback' => array( 'Astra_Customizer_Sanitizes', 'sanitize_alpha_color' ),
+ 'title' => __( 'Text Color', 'astra' ),
+ 'context' => Astra_Builder_Helper::$design_tab,
+ 'divider' => array( 'ast_class' => 'ast-bottom-divider' ),
+
+ ),
+
+
+ /**
+ * Option: Margin Space
+ */
+ array(
+ 'name' => ASTRA_THEME_SETTINGS . '[' . $_section . '-margin]',
+ 'default' => astra_get_option( $_section . '-margin' ),
+ 'type' => 'control',
+ 'transport' => 'postMessage',
+ 'control' => 'ast-responsive-spacing',
+ 'sanitize_callback' => array( 'Astra_Customizer_Sanitizes', 'sanitize_responsive_spacing' ),
+ 'section' => $_section,
+ 'priority' => 220,
+ 'title' => __( 'Margin', 'astra' ),
+ 'linked_choices' => true,
+ 'unit_choices' => array( 'px', 'em', '%' ),
+ 'choices' => array(
+ 'top' => __( 'Top', 'astra' ),
+ 'right' => __( 'Right', 'astra' ),
+ 'bottom' => __( 'Bottom', 'astra' ),
+ 'left' => __( 'Left', 'astra' ),
+ ),
+ 'context' => Astra_Builder_Helper::$design_tab,
+ ),
+ );
+
+ $_configs = array_merge( $_configs, Astra_Builder_Base_Configuration::prepare_typography_options( $_section ) );
+
+ $_configs = array_merge( $_configs, Astra_Builder_Base_Configuration::prepare_visibility_tab( $_section, 'footer' ) );
+
+ return array_merge( $configurations, $_configs );
+ }
+}
+
+/**
+ * Kicking this off by creating object of this class.
+ */
+
+new Astra_Customizer_Copyright_Configs();
+
diff --git a/inc/customizer/configurations/builder/footer/class-astra-customizer-footer-builder-configs.php b/inc/customizer/configurations/builder/footer/class-astra-customizer-footer-builder-configs.php
new file mode 100644
index 0000000..5fa305b
--- /dev/null
+++ b/inc/customizer/configurations/builder/footer/class-astra-customizer-footer-builder-configs.php
@@ -0,0 +1,314 @@
+<?php
+/**
+ * Astra Theme Customizer Configuration Builder.
+ *
+ * @package astra
+ * @author Astra
+ * @copyright Copyright (c) 2020, Astra
+ * @link https://wpastra.com/
+ * @since 3.0.0
+ */
+
+// No direct access, please.
+if ( ! defined( 'ABSPATH' ) ) {
+ exit;
+}
+
+// Bail if Customizer config base class does not exist.
+if ( ! class_exists( 'Astra_Customizer_Config_Base' ) ) {
+ return;
+}
+
+/**
+ * Register Builder Customizer Configurations.
+ *
+ * @since 3.0.0
+ */
+class Astra_Customizer_Footer_Builder_Configs extends Astra_Customizer_Config_Base {
+
+ /**
+ * Footer Zones.
+ *
+ * @var array
+ * @since 3.0.0
+ */
+ public static $zones = array(
+ 'above' => array(),
+ 'primary' => array(),
+ 'below' => array(),
+ );
+
+ /**
+ * Register Builder Customizer Configurations.
+ *
+ * @param Array $configurations Astra Customizer Configurations.
+ * @param WP_Customize_Manager $wp_customize instance of WP_Customize_Manager.
+ * @since 3.0.0
+ * @return Array Astra Customizer Configurations with updated configurations.
+ */
+ public function register_configuration( $configurations, $wp_customize ) {
+
+ $cloned_component_track = Astra_Builder_Helper::$component_count_array;
+ $widget_config = array();
+ $astra_has_widgets_block_editor = astra_has_widgets_block_editor();
+
+ for ( $index = 1; $index <= Astra_Builder_Helper::$num_of_footer_html; $index++ ) {
+
+ $footer_html_section = 'section-fb-html-' . $index;
+
+ if ( in_array( $footer_html_section, $cloned_component_track['removed-items'], true ) ) {
+ continue;
+ }
+
+ Astra_Builder_Helper::$footer_desktop_items[ 'html-' . $index ] = array(
+ 'name' => 'HTML ' . $index,
+ 'icon' => 'text',
+ 'section' => $footer_html_section,
+ 'clone' => defined( 'ASTRA_EXT_VER' ),
+ 'type' => 'html',
+ 'builder' => 'footer',
+ );
+ }
+
+ for ( $index = 1; $index <= Astra_Builder_Helper::$num_of_footer_widgets; $index++ ) {
+
+ $footer_widget_section = 'sidebar-widgets-footer-widget-' . $index;
+
+ if ( in_array( $footer_widget_section, $cloned_component_track['removed-items'], true ) ) {
+ continue;
+ }
+
+ Astra_Builder_Helper::$footer_desktop_items[ 'widget-' . $index ] = array(
+ 'name' => 'Widget ' . $index,
+ 'icon' => 'wordpress',
+ 'section' => $footer_widget_section,
+ 'clone' => defined( 'ASTRA_EXT_VER' ),
+ 'type' => 'widget',
+ 'builder' => 'footer',
+ );
+
+ if ( $astra_has_widgets_block_editor ) {
+ $widget_config[] = array(
+ 'name' => $footer_widget_section,
+ 'type' => 'section',
+ 'priority' => 5,
+ 'panel' => 'panel-footer-builder-group',
+ );
+ }
+ }
+
+ if ( $astra_has_widgets_block_editor ) {
+ $configurations = array_merge( $configurations, $widget_config );
+ }
+
+ for ( $index = 1; $index <= Astra_Builder_Helper::$num_of_footer_button; $index++ ) {
+
+ $footer_button_section = 'section-fb-button-' . $index;
+
+ if ( in_array( $footer_button_section, $cloned_component_track['removed-items'], true ) ) {
+ continue;
+ }
+
+ Astra_Builder_Helper::$footer_desktop_items[ 'button-' . $index ] = array(
+ 'name' => ( 1 === Astra_Builder_Helper::$num_of_footer_button ) ? 'Button' : 'Button ' . $index,
+ 'icon' => 'admin-links',
+ 'section' => $footer_button_section,
+ 'clone' => defined( 'ASTRA_EXT_VER' ),
+ 'type' => 'button',
+ 'builder' => 'footer',
+ );
+ }
+
+ for ( $index = 1; $index <= Astra_Builder_Helper::$num_of_footer_social_icons; $index++ ) {
+
+ $footer_social_section = 'section-fb-social-icons-' . $index;
+
+ if ( in_array( $footer_social_section, $cloned_component_track['removed-items'], true ) ) {
+ continue;
+ }
+
+ Astra_Builder_Helper::$footer_desktop_items[ 'social-icons-' . $index ] = array(
+ 'name' => ( 1 === Astra_Builder_Helper::$num_of_footer_social_icons ) ? 'Social' : 'Social ' . $index,
+ 'icon' => 'share',
+ 'section' => $footer_social_section,
+ 'clone' => defined( 'ASTRA_EXT_VER' ),
+ 'type' => 'social-icons',
+ 'builder' => 'footer',
+ );
+ }
+
+ $zone_base = array( 'above', 'primary', 'below' );
+
+ foreach ( $zone_base as $key => $base ) {
+ for ( $index = 1; $index <= Astra_Builder_Helper::$num_of_footer_columns; $index++ ) {
+ self::$zones[ $base ][ $base . '_' . $index ] = ucfirst( $base ) . ' Section ' . $index;
+ }
+ }
+
+ $_configs = array(
+
+ array(
+ 'name' => 'panel-footer-builder-group',
+ 'type' => 'panel',
+ 'priority' => 60,
+ 'title' => __( 'Footer Builder', 'astra' ),
+ ),
+
+ /**
+ * Option: Footer Layout
+ */
+ array(
+ 'name' => 'section-footer-builder-layout',
+ 'type' => 'section',
+ 'priority' => 5,
+ 'title' => __( 'Footer Layout', 'astra' ),
+ 'panel' => 'panel-footer-builder-group',
+ ),
+
+ /**
+ * Option: Header Builder Tabs
+ */
+ array(
+ 'name' => 'section-footer-builder-layout-ast-context-tabs',
+ 'section' => 'section-footer-builder-layout',
+ 'type' => 'control',
+ 'control' => 'ast-builder-header-control',
+ 'priority' => 0,
+ 'description' => '',
+ ),
+
+ /*
+ * Header Builder section
+ */
+ array(
+ 'name' => 'section-footer-builder',
+ 'type' => 'section',
+ 'priority' => 5,
+ 'title' => __( 'Footer Builder', 'astra' ),
+ 'panel' => 'panel-footer-builder-group',
+ 'context' => array(
+ array(
+ 'setting' => 'ast_selected_tab',
+ 'operator' => 'in',
+ 'value' => array( 'general', 'design' ),
+ ),
+ ),
+ ),
+
+ /**
+ * Option: Footer Builder
+ */
+ array(
+ 'name' => ASTRA_THEME_SETTINGS . '[builder-footer]',
+ 'section' => 'section-footer-builder',
+ 'type' => 'control',
+ 'control' => 'ast-builder-header-control',
+ 'priority' => 20,
+ 'description' => '',
+ ),
+
+ // Group Option: Global Footer Background styling.
+ array(
+ 'name' => ASTRA_THEME_SETTINGS . '[footer-bg-obj-responsive]',
+ 'type' => 'control',
+ 'control' => 'ast-responsive-background',
+ 'default' => astra_get_option( 'footer-bg-obj-responsive' ),
+ 'section' => 'section-footer-builder-layout',
+ 'transport' => 'postMessage',
+ 'priority' => 70,
+ 'title' => __( 'Background Color & Image', 'astra' ),
+ 'context' => Astra_Builder_Helper::$design_tab,
+ ),
+
+ // Footer Background Color notice.
+ array(
+ 'name' => ASTRA_THEME_SETTINGS . '[footer-bg-obj-responsive-description]',
+ 'type' => 'control',
+ 'control' => 'ast-description',
+ 'section' => 'section-footer-builder-layout',
+ 'priority' => 71,
+ 'label' => '',
+ 'help' => __( 'If this color setting is not reflecting, check if colors are set from dedicated above, below or primary footer settings.', 'astra' ),
+ 'context' => Astra_Builder_Helper::$design_tab,
+ ),
+
+ /**
+ * Option: Footer Desktop Items.
+ */
+ array(
+ 'name' => ASTRA_THEME_SETTINGS . '[footer-desktop-items]',
+ 'section' => 'section-footer-builder',
+ 'type' => 'control',
+ 'control' => 'ast-builder',
+ 'title' => __( 'Footer Builder', 'astra' ),
+ 'priority' => 10,
+ 'default' => astra_get_option( 'footer-desktop-items' ),
+ 'choices' => Astra_Builder_Helper::$footer_desktop_items,
+ 'transport' => 'postMessage',
+ 'partial' => array(
+ 'selector' => '.site-footer',
+ 'container_inclusive' => true,
+ 'render_callback' => array( Astra_Builder_Footer::get_instance(), 'footer_markup' ),
+ ),
+ 'input_attrs' => array(
+ 'group' => ASTRA_THEME_SETTINGS . '[footer-desktop-items]',
+ 'rows' => array( 'above', 'primary', 'below' ),
+ 'zones' => self::$zones,
+ 'layouts' => array(
+ 'above' => array(
+ 'column' => astra_get_option( 'hba-footer-column' ),
+ 'layout' => astra_get_option( 'hba-footer-layout' ),
+ ),
+ 'primary' => array(
+ 'column' => astra_get_option( 'hb-footer-column' ),
+ 'layout' => astra_get_option( 'hb-footer-layout' ),
+ ),
+ 'below' => array(
+ 'column' => astra_get_option( 'hbb-footer-column' ),
+ 'layout' => astra_get_option( 'hbb-footer-layout' ),
+ ),
+ ),
+ 'status' => array(
+ 'above' => true,
+ 'primary' => true,
+ 'below' => true,
+ ),
+ ),
+ 'context' => array(
+ array(
+ 'setting' => 'ast_selected_tab',
+ 'operator' => 'in',
+ 'value' => array( 'general', 'design' ),
+ ),
+ ),
+ ),
+
+ /**
+ * Footer Available draggable items.
+ */
+ array(
+ 'name' => ASTRA_THEME_SETTINGS . '[footer-draggable-items]',
+ 'section' => 'section-footer-builder-layout',
+ 'type' => 'control',
+ 'control' => 'ast-draggable-items',
+ 'priority' => 10,
+ 'input_attrs' => array(
+ 'group' => ASTRA_THEME_SETTINGS . '[footer-desktop-items]',
+ 'zones' => array( 'above', 'primary', 'below' ),
+ ),
+ 'context' => Astra_Builder_Helper::$general_tab,
+ ),
+ );
+
+ $_configs = array_merge( $_configs, Astra_Builder_Base_Configuration::prepare_advanced_tab( 'section-footer-builder-layout' ) );
+
+ return array_merge( $configurations, $_configs );
+ }
+}
+
+/**
+ * Kicking this off by creating object of this class.
+ */
+if ( class_exists( 'Astra_Customizer_Config_Base' ) ) {
+ new Astra_Customizer_Footer_Builder_Configs();
+}
diff --git a/inc/customizer/configurations/builder/footer/class-astra-customizer-footer-menu-configs.php b/inc/customizer/configurations/builder/footer/class-astra-customizer-footer-menu-configs.php
new file mode 100644
index 0000000..28cb91f
--- /dev/null
+++ b/inc/customizer/configurations/builder/footer/class-astra-customizer-footer-menu-configs.php
@@ -0,0 +1,371 @@
+<?php
+/**
+ * Astra Theme Customizer Configuration Builder.
+ *
+ * @package astra-builder
+ * @author Astra
+ * @copyright Copyright (c) 2020, Astra
+ * @link https://wpastra.com/
+ * @since 3.0.0
+ */
+
+// No direct access, please.
+if ( ! defined( 'ABSPATH' ) ) {
+ exit;
+}
+
+if ( class_exists( 'Astra_Customizer_Config_Base' ) ) {
+
+ /**
+ * Register Builder Customizer Configurations.
+ *
+ * @since 3.0.0
+ */
+ class Astra_Customizer_Footer_Menu_Configs extends Astra_Customizer_Config_Base {
+
+ /**
+ * Register Builder Customizer Configurations.
+ *
+ * @param Array $configurations Astra Customizer Configurations.
+ * @param WP_Customize_Manager $wp_customize instance of WP_Customize_Manager.
+ * @since 3.0.0
+ * @return Array Astra Customizer Configurations with updated configurations.
+ */
+ public function register_configuration( $configurations, $wp_customize ) {
+
+ $_section = 'section-footer-menu';
+
+ $_configs = array(
+
+ /**
+ * Option: Header Builder Tabs
+ */
+ array(
+ 'name' => $_section . '-ast-context-tabs',
+ 'section' => $_section,
+ 'type' => 'control',
+ 'control' => 'ast-builder-header-control',
+ 'priority' => 0,
+ 'description' => '',
+
+ ),
+
+ // Section: Primary Header.
+ array(
+ 'name' => $_section,
+ 'type' => 'section',
+ 'title' => __( 'Footer Menu', 'astra' ),
+ 'panel' => 'panel-footer-builder-group',
+ 'priority' => 50,
+ ),
+
+ /**
+ * Option: Theme Menu create link
+ */
+ array(
+ 'name' => ASTRA_THEME_SETTINGS . '[footer-create-menu-link]',
+ 'default' => astra_get_option( 'footer-create-menu-link' ),
+ 'type' => 'control',
+ 'control' => 'ast-customizer-link',
+ 'section' => $_section,
+ 'priority' => 10,
+ 'link_type' => 'section',
+ 'linked' => 'menu_locations',
+ 'link_text' => __( 'Configure Menu from Here.', 'astra' ),
+ 'context' => Astra_Builder_Helper::$general_tab,
+
+ ),
+
+
+ // Option: Footer Menu Layout.
+ array(
+ 'name' => ASTRA_THEME_SETTINGS . '[footer-menu-layout]',
+ 'default' => astra_get_option( 'footer-menu-layout' ),
+ 'section' => $_section,
+ 'priority' => 20,
+ 'title' => __( 'Layout', 'astra' ),
+ 'type' => 'control',
+ 'control' => 'ast-selector',
+ 'transport' => 'postMessage',
+ 'partial' => array(
+ 'selector' => '.footer-widget-area[data-section="section-footer-menu"] nav',
+ 'container_inclusive' => true,
+ 'render_callback' => array( Astra_Builder_Footer::get_instance(), 'footer_menu' ),
+ ),
+ 'choices' => array(
+ 'horizontal' => __( 'Inline', 'astra' ),
+ 'vertical' => __( 'Stack', 'astra' ),
+ ),
+ 'context' => Astra_Builder_Helper::$general_tab,
+ 'responsive' => true,
+ 'renderAs' => 'text',
+ 'divider' => array( 'ast_class' => 'ast-bottom-divider ast-top-divider' ),
+ ),
+
+ /**
+ * Option: Alignment
+ */
+ array(
+ 'name' => ASTRA_THEME_SETTINGS . '[footer-menu-alignment]',
+ 'default' => astra_get_option( 'footer-menu-alignment' ),
+ 'type' => 'control',
+ 'control' => 'ast-selector',
+ 'section' => $_section,
+ 'priority' => 21,
+ 'title' => __( 'Alignment', 'astra' ),
+ 'context' => Astra_Builder_Helper::$general_tab,
+ 'transport' => 'postMessage',
+ 'choices' => array(
+ 'flex-start' => 'align-left',
+ 'center' => 'align-center',
+ 'flex-end' => 'align-right',
+ ),
+ ),
+
+ // Option Group: Menu Color.
+ array(
+ 'name' => ASTRA_THEME_SETTINGS . '[footer-menu-link-colors]',
+ 'type' => 'control',
+ 'control' => 'ast-color-group',
+ 'context' => Astra_Builder_Helper::$design_tab,
+ 'title' => __( 'Link / Text', 'astra' ),
+ 'section' => $_section,
+ 'transport' => 'postMessage',
+ 'priority' => 90,
+ 'responsive' => true,
+ ),
+ array(
+ 'name' => ASTRA_THEME_SETTINGS . '[footer-menu-background-colors]',
+ 'type' => 'control',
+ 'control' => 'ast-color-group',
+ 'context' => Astra_Builder_Helper::$design_tab,
+ 'title' => __( 'Background', 'astra' ),
+ 'section' => $_section,
+ 'transport' => 'postMessage',
+ 'priority' => 90,
+ 'responsive' => true,
+ 'divider' => array( 'ast_class' => 'ast-bottom-divider' ),
+ ),
+ // Option: Menu Color.
+ array(
+ 'name' => 'footer-menu-color-responsive',
+ 'default' => astra_get_option( 'footer-menu-color-responsive' ),
+ 'parent' => ASTRA_THEME_SETTINGS . '[footer-menu-link-colors]',
+ 'type' => 'sub-control',
+ 'control' => 'ast-responsive-color',
+ 'transport' => 'postMessage',
+ 'tab' => __( 'Normal', 'astra' ),
+ 'section' => $_section,
+ 'title' => __( 'Normal', 'astra' ),
+ 'responsive' => true,
+ 'rgba' => true,
+ 'priority' => 7,
+ ),
+
+ // Option: Menu Background image, color.
+ array(
+ 'name' => 'footer-menu-bg-obj-responsive',
+ 'default' => astra_get_option( 'footer-menu-bg-obj-responsive' ),
+ 'parent' => ASTRA_THEME_SETTINGS . '[footer-menu-background-colors]',
+ 'type' => 'sub-control',
+ 'control' => 'ast-responsive-background',
+ 'section' => $_section,
+ 'transport' => 'postMessage',
+ 'tab' => __( 'Normal', 'astra' ),
+ 'data_attrs' => array( 'name' => 'footer-menu-bg-obj-responsive' ),
+ 'title' => __( 'Normal', 'astra' ),
+ 'label' => __( 'Normal', 'astra' ),
+ 'priority' => 9,
+ ),
+
+ // Option: Menu Hover Color.
+ array(
+ 'name' => 'footer-menu-h-color-responsive',
+ 'default' => astra_get_option( 'footer-menu-h-color-responsive' ),
+ 'parent' => ASTRA_THEME_SETTINGS . '[footer-menu-link-colors]',
+ 'tab' => __( 'Hover', 'astra' ),
+ 'type' => 'sub-control',
+ 'control' => 'ast-responsive-color',
+ 'transport' => 'postMessage',
+ 'title' => __( 'Hover', 'astra' ),
+ 'section' => $_section,
+ 'responsive' => true,
+ 'rgba' => true,
+ 'priority' => 19,
+ ),
+
+ // Option: Menu Hover Background Color.
+ array(
+ 'name' => 'footer-menu-h-bg-color-responsive',
+ 'default' => astra_get_option( 'footer-menu-h-bg-color-responsive' ),
+ 'parent' => ASTRA_THEME_SETTINGS . '[footer-menu-background-colors]',
+ 'type' => 'sub-control',
+ 'title' => __( 'Hover', 'astra' ),
+ 'section' => $_section,
+ 'control' => 'ast-responsive-color',
+ 'transport' => 'postMessage',
+ 'tab' => __( 'Hover', 'astra' ),
+ 'responsive' => true,
+ 'rgba' => true,
+ 'priority' => 21,
+ ),
+
+ // Option: Active Menu Color.
+ array(
+ 'name' => 'footer-menu-a-color-responsive',
+ 'default' => astra_get_option( 'footer-menu-a-color-responsive' ),
+ 'parent' => ASTRA_THEME_SETTINGS . '[footer-menu-link-colors]',
+ 'type' => 'sub-control',
+ 'section' => $_section,
+ 'control' => 'ast-responsive-color',
+ 'transport' => 'postMessage',
+ 'tab' => __( 'Active', 'astra' ),
+ 'title' => __( 'Active', 'astra' ),
+ 'responsive' => true,
+ 'rgba' => true,
+ 'priority' => 31,
+ ),
+
+ // Option: Active Menu Background Color.
+ array(
+ 'name' => 'footer-menu-a-bg-color-responsive',
+ 'default' => astra_get_option( 'footer-menu-a-bg-color-responsive' ),
+ 'parent' => ASTRA_THEME_SETTINGS . '[footer-menu-background-colors]',
+ 'type' => 'sub-control',
+ 'control' => 'ast-responsive-color',
+ 'transport' => 'postMessage',
+ 'section' => $_section,
+ 'title' => __( 'Active', 'astra' ),
+ 'tab' => __( 'Active', 'astra' ),
+ 'responsive' => true,
+ 'rgba' => true,
+ 'priority' => 33,
+ ),
+
+ // Option - Menu Space.
+ array(
+ 'name' => ASTRA_THEME_SETTINGS . '[footer-main-menu-spacing]',
+ 'default' => astra_get_option( 'footer-main-menu-spacing' ),
+ 'type' => 'control',
+ 'control' => 'ast-responsive-spacing',
+ 'sanitize_callback' => array( 'Astra_Customizer_Sanitizes', 'sanitize_responsive_spacing' ),
+ 'transport' => 'postMessage',
+ 'section' => $_section,
+ 'context' => Astra_Builder_Helper::$design_tab,
+ 'priority' => 210,
+ 'title' => __( 'Menu Spacing', 'astra' ),
+ 'linked_choices' => true,
+ 'unit_choices' => array( 'px', 'em', '%' ),
+ 'choices' => array(
+ 'top' => __( 'Top', 'astra' ),
+ 'right' => __( 'Right', 'astra' ),
+ 'bottom' => __( 'Bottom', 'astra' ),
+ 'left' => __( 'Left', 'astra' ),
+ ),
+ 'divider' => array( 'ast_class' => 'ast-bottom-divider' ),
+ ),
+
+
+ /**
+ * Option: Margin Space
+ */
+ array(
+ 'name' => ASTRA_THEME_SETTINGS . '[' . $_section . '-margin]',
+ 'default' => astra_get_option( $_section . '-margin' ),
+ 'type' => 'control',
+ 'transport' => 'postMessage',
+ 'control' => 'ast-responsive-spacing',
+ 'sanitize_callback' => array( 'Astra_Customizer_Sanitizes', 'sanitize_responsive_spacing' ),
+ 'section' => $_section,
+ 'priority' => 220,
+ 'title' => __( 'Margin', 'astra' ),
+ 'linked_choices' => true,
+ 'unit_choices' => array( 'px', 'em', '%' ),
+ 'choices' => array(
+ 'top' => __( 'Top', 'astra' ),
+ 'right' => __( 'Right', 'astra' ),
+ 'bottom' => __( 'Bottom', 'astra' ),
+ 'left' => __( 'Left', 'astra' ),
+ ),
+ 'context' => Astra_Builder_Helper::$design_tab,
+ ),
+ );
+
+ if ( defined( 'ASTRA_EXT_VER' ) && Astra_Ext_Extension::is_active( 'typography' ) ) {
+
+ $new_configs = array(
+
+ // Option Group: Menu Typography.
+ array(
+ 'name' => ASTRA_THEME_SETTINGS . '[footer-menu-typography]',
+ 'default' => astra_get_option( 'footer-menu-typography' ),
+ 'type' => 'control',
+ 'control' => 'ast-settings-group',
+ 'title' => __( 'Menu Font', 'astra' ),
+ 'section' => $_section,
+ 'context' => Astra_Builder_Helper::$design_tab,
+ 'transport' => 'postMessage',
+ 'priority' => 120,
+ 'divider' => array( 'ast_class' => 'ast-bottom-divider' ),
+ ),
+
+ // Option: Menu Font Size.
+ array(
+ 'name' => 'footer-menu-font-size',
+ 'default' => astra_get_option( 'footer-menu-font-size' ),
+ 'parent' => ASTRA_THEME_SETTINGS . '[footer-menu-typography]',
+ 'section' => $_section,
+ 'type' => 'sub-control',
+ 'priority' => 23,
+ 'title' => __( 'Size', 'astra' ),
+ 'control' => 'ast-responsive',
+ 'transport' => 'postMessage',
+ 'input_attrs' => array(
+ 'min' => 0,
+ ),
+ 'units' => array(
+ 'px' => 'px',
+ 'em' => 'em',
+ ),
+ 'context' => Astra_Builder_Helper::$general_tab,
+ ),
+ );
+ } else {
+
+ $new_configs = array(
+
+ // Option: Menu Font Size.
+ array(
+ 'name' => ASTRA_THEME_SETTINGS . '[footer-menu-font-size]',
+ 'default' => astra_get_option( 'footer-menu-font-size' ),
+ 'section' => $_section,
+ 'type' => 'control',
+ 'priority' => 120,
+ 'title' => __( 'Menu Font Size', 'astra' ),
+ 'control' => 'ast-responsive',
+ 'transport' => 'postMessage',
+ 'input_attrs' => array(
+ 'min' => 0,
+ ),
+ 'units' => array(
+ 'px' => 'px',
+ 'em' => 'em',
+ ),
+ 'context' => Astra_Builder_Helper::$design_tab,
+ ),
+ );
+ }
+
+ $_configs = array_merge( $_configs, $new_configs );
+
+ $_configs = array_merge( $_configs, Astra_Builder_Base_Configuration::prepare_visibility_tab( $_section, 'footer' ) );
+
+ return array_merge( $configurations, $_configs );
+ }
+ }
+
+ /**
+ * Kicking this off by creating 'new' object of this class.
+ */
+ new Astra_Customizer_Footer_Menu_Configs();
+}
diff --git a/inc/customizer/configurations/builder/footer/class-astra-customizer-footer-social-icons-configs.php b/inc/customizer/configurations/builder/footer/class-astra-customizer-footer-social-icons-configs.php
new file mode 100644
index 0000000..e067724
--- /dev/null
+++ b/inc/customizer/configurations/builder/footer/class-astra-customizer-footer-social-icons-configs.php
@@ -0,0 +1,49 @@
+<?php
+/**
+ * Astra Theme Customizer Configuration Builder.
+ *
+ * @package astra-builder
+ * @author Astra
+ * @copyright Copyright (c) 2020, Astra
+ * @link https://wpastra.com/
+ * @since 3.0.0
+ */
+
+// No direct access, please.
+if ( ! defined( 'ABSPATH' ) ) {
+ exit;
+}
+
+if ( ! class_exists( 'Astra_Customizer_Config_Base' ) ) {
+ return;
+}
+
+/**
+ * Social Icons Customizer Configurations.
+ *
+ * @since 3.0.0
+ */
+class Astra_Customizer_Footer_Social_Icons_Configs extends Astra_Customizer_Config_Base {
+
+ /**
+ * Social Icons Customizer Configurations.
+ *
+ * @param Array $configurations Astra Customizer Configurations.
+ * @param WP_Customize_Manager $wp_customize instance of WP_Customize_Manager.
+ * @since 3.0.0
+ * @return Array Astra Customizer Configurations with updated configurations.
+ */
+ public function register_configuration( $configurations, $wp_customize ) {
+
+ $configurations = Astra_Social_Icon_Component_Configs::register_configuration( $configurations, 'footer', 'section-fb-social-icons-' );
+
+ return $configurations;
+ }
+}
+
+/**
+ * Kicking this off by creating object of this class.
+ */
+
+new Astra_Customizer_Footer_Social_Icons_Configs();
+
diff --git a/inc/customizer/configurations/builder/footer/class-astra-customizer-primary-footer-configs.php b/inc/customizer/configurations/builder/footer/class-astra-customizer-primary-footer-configs.php
new file mode 100644
index 0000000..31ba074
--- /dev/null
+++ b/inc/customizer/configurations/builder/footer/class-astra-customizer-primary-footer-configs.php
@@ -0,0 +1,268 @@
+<?php
+/**
+ * Astra Theme Customizer Configuration Builder.
+ *
+ * @package astra-builder
+ * @author Astra
+ * @copyright Copyright (c) 2020, Astra
+ * @link https://wpastra.com/
+ * @since 3.0.0
+ */
+
+// No direct access, please.
+if ( ! defined( 'ABSPATH' ) ) {
+ exit;
+}
+
+if ( class_exists( 'Astra_Customizer_Config_Base' ) ) {
+
+ /**
+ * Register Builder Customizer Configurations.
+ *
+ * @since 3.0.0
+ */
+ class Astra_Customizer_Primary_Footer_Configs extends Astra_Customizer_Config_Base {
+
+ /**
+ * Register Builder Customizer Configurations.
+ *
+ * @param Array $configurations Astra Customizer Configurations.
+ * @param WP_Customize_Manager $wp_customize instance of WP_Customize_Manager.
+ * @since 3.0.0
+ * @return Array Astra Customizer Configurations with updated configurations.
+ */
+ public function register_configuration( $configurations, $wp_customize ) {
+
+ $_section = 'section-primary-footer-builder';
+
+ $column_count = range( 1, Astra_Builder_Helper::$num_of_footer_columns );
+ $column_count = array_combine( $column_count, $column_count );
+
+ $_configs = array(
+
+ // Section: Primary Footer.
+ array(
+ 'name' => $_section,
+ 'type' => 'section',
+ 'title' => __( 'Primary Footer', 'astra' ),
+ 'panel' => 'panel-footer-builder-group',
+ 'priority' => 20,
+ ),
+
+ /**
+ * Option: Footer Builder Tabs
+ */
+ array(
+ 'name' => $_section . '-ast-context-tabs',
+ 'section' => $_section,
+ 'type' => 'control',
+ 'control' => 'ast-builder-header-control',
+ 'priority' => 0,
+ 'description' => '',
+ ),
+
+ /**
+ * Option: Column count
+ */
+ array(
+ 'name' => ASTRA_THEME_SETTINGS . '[hb-footer-column]',
+ 'default' => astra_get_option( 'hb-footer-column' ),
+ 'type' => 'control',
+ 'control' => 'ast-select',
+ 'section' => $_section,
+ 'priority' => 2,
+ 'title' => __( 'Column', 'astra' ),
+ 'choices' => $column_count,
+ 'context' => Astra_Builder_Helper::$general_tab,
+ 'transport' => 'postMessage',
+ 'partial' => array(
+ 'selector' => '.site-primary-footer-wrap',
+ 'container_inclusive' => false,
+ 'render_callback' => array( Astra_Builder_Footer::get_instance(), 'primary_footer' ),
+ ),
+ ),
+
+ /**
+ * Option: Row Layout
+ */
+ array(
+ 'name' => ASTRA_THEME_SETTINGS . '[hb-footer-layout]',
+ 'section' => $_section,
+ 'default' => astra_get_option( 'hb-footer-layout' ),
+ 'priority' => 3,
+ 'title' => __( 'Layout', 'astra' ),
+ 'type' => 'control',
+ 'control' => 'ast-row-layout',
+ 'context' => Astra_Builder_Helper::$general_tab,
+ 'input_attrs' => array(
+ 'responsive' => true,
+ 'footer' => 'primary',
+ 'layout' => Astra_Builder_Helper::$footer_row_layouts,
+ ),
+ 'divider' => array( 'ast_class' => 'ast-bottom-divider' ),
+ 'transport' => 'postMessage',
+ ),
+
+ /**
+ * Option: Layout Width
+ */
+ array(
+ 'name' => ASTRA_THEME_SETTINGS . '[hb-footer-layout-width]',
+ 'default' => astra_get_option( 'hb-footer-layout-width' ),
+ 'type' => 'control',
+ 'control' => 'ast-selector',
+ 'section' => $_section,
+ 'priority' => 25,
+ 'title' => __( 'Width', 'astra' ),
+ 'choices' => array(
+ 'full' => __( 'Full Width', 'astra' ),
+ 'content' => __( 'Content Width', 'astra' ),
+ ),
+ 'context' => Astra_Builder_Helper::$general_tab,
+ 'transport' => 'postMessage',
+ 'renderAs' => 'text',
+ 'responsive' => false,
+ 'divider' => array( 'ast_class' => 'ast-bottom-divider' ),
+ ),
+
+
+ /**
+ * Option: Vertical Alignment
+ */
+ array(
+ 'name' => ASTRA_THEME_SETTINGS . '[hb-footer-vertical-alignment]',
+ 'default' => astra_get_option( 'hb-footer-vertical-alignment' ),
+ 'type' => 'control',
+ 'control' => 'ast-selector',
+ 'section' => $_section,
+ 'priority' => 30,
+ 'title' => __( 'Vertical Alignment', 'astra' ),
+ 'choices' => array(
+ 'flex-start' => __( 'Top', 'astra' ),
+ 'center' => __( 'Middle', 'astra' ),
+ 'flex-end' => __( 'Bottom', 'astra' ),
+ ),
+ 'context' => Astra_Builder_Helper::$general_tab,
+ 'transport' => 'postMessage',
+ 'renderAs' => 'text',
+ 'responsive' => false,
+ ),
+
+ array(
+ 'name' => ASTRA_THEME_SETTINGS . '[hb-stack]',
+ 'default' => astra_get_option( 'hb-stack' ),
+ 'type' => 'control',
+ 'control' => 'ast-selector',
+ 'section' => $_section,
+ 'priority' => 5,
+ 'title' => __( 'Inner Elements Layout', 'astra' ),
+ 'choices' => array(
+ 'stack' => __( 'Stack', 'astra' ),
+ 'inline' => __( 'Inline', 'astra' ),
+ ),
+ 'context' => Astra_Builder_Helper::$general_tab,
+ 'transport' => 'postMessage',
+ 'partial' => array(
+ 'selector' => '.site-primary-footer-wrap',
+ 'container_inclusive' => false,
+ 'render_callback' => array( Astra_Builder_Footer::get_instance(), 'primary_footer' ),
+ ),
+ 'renderAs' => 'text',
+ 'divider' => array( 'ast_class' => 'ast-bottom-divider' ),
+ ),
+
+ // Option: Footer Separator.
+ array(
+ 'name' => ASTRA_THEME_SETTINGS . '[hb-footer-main-sep]',
+ 'transport' => 'postMessage',
+ 'default' => astra_get_option( 'hb-footer-main-sep' ),
+ 'type' => 'control',
+ 'control' => 'ast-slider',
+ 'section' => $_section,
+ 'priority' => 4,
+ 'title' => __( 'Top Border Size', 'astra' ),
+ 'suffix' => 'px',
+ 'input_attrs' => array(
+ 'min' => 0,
+ 'step' => 1,
+ 'max' => 600,
+ ),
+ 'context' => Astra_Builder_Helper::$design_tab,
+ ),
+
+ // Option: Footer Top Boder Color.
+ array(
+ 'name' => ASTRA_THEME_SETTINGS . '[hb-footer-main-sep-color]',
+ 'transport' => 'postMessage',
+ 'default' => astra_get_option( 'hb-footer-main-sep-color' ),
+ 'type' => 'control',
+ 'control' => 'ast-color',
+ 'sanitize_callback' => array( 'Astra_Customizer_Sanitizes', 'sanitize_alpha_color' ),
+ 'section' => $_section,
+ 'priority' => 5,
+ 'title' => __( 'Border Color', 'astra' ),
+ 'context' => array(
+ Astra_Builder_Helper::$design_tab_config,
+ array(
+ 'setting' => ASTRA_THEME_SETTINGS . '[hb-footer-main-sep]',
+ 'operator' => '>=',
+ 'value' => 1,
+ ),
+ ),
+ 'divider' => array( 'ast_class' => 'ast-bottom-divider' ),
+ ),
+
+ // Sub Option: Footer Background.
+ array(
+ 'name' => ASTRA_THEME_SETTINGS . '[hb-footer-bg-obj-responsive]',
+ 'section' => $_section,
+ 'type' => 'control',
+ 'control' => 'ast-responsive-background',
+ 'transport' => 'postMessage',
+ 'priority' => 7,
+ 'data_attrs' => array(
+ 'name' => 'hb-footer-bg-obj-responsive',
+ ),
+ 'default' => astra_get_option( 'hb-footer-bg-obj-responsive' ),
+ 'title' => __( 'Background', 'astra' ),
+ 'context' => Astra_Builder_Helper::$design_tab,
+ 'divider' => array( 'ast_class' => 'ast-bottom-divider' ),
+ ),
+
+ /**
+ * Option: Inner Spacing
+ */
+ array(
+ 'name' => ASTRA_THEME_SETTINGS . '[hb-inner-spacing]',
+ 'section' => $_section,
+ 'priority' => 205,
+ 'transport' => 'postMessage',
+ 'default' => astra_get_option( 'hb-inner-spacing' ),
+ 'title' => __( 'Inner Column Spacing', 'astra' ),
+ 'suffix' => 'px',
+ 'type' => 'control',
+ 'control' => 'ast-responsive-slider',
+ 'sanitize_callback' => array( 'Astra_Customizer_Sanitizes', 'sanitize_responsive_slider' ),
+ 'input_attrs' => array(
+ 'min' => 0,
+ 'step' => 1,
+ 'max' => 200,
+ ),
+ 'context' => Astra_Builder_Helper::$design_tab,
+ ),
+
+ );
+
+ $_configs = array_merge( $_configs, Astra_Builder_Base_Configuration::prepare_advanced_tab( $_section ) );
+
+ $_configs = array_merge( $_configs, Astra_Builder_Base_Configuration::prepare_visibility_tab( $_section, 'footer' ) );
+
+ return array_merge( $configurations, $_configs );
+ }
+ }
+
+ /**
+ * Kicking this off by creating object of this class.
+ */
+ new Astra_Customizer_Primary_Footer_Configs();
+}
diff --git a/inc/customizer/configurations/builder/footer/class-astra-footer-button-component-configs.php b/inc/customizer/configurations/builder/footer/class-astra-footer-button-component-configs.php
new file mode 100644
index 0000000..a443890
--- /dev/null
+++ b/inc/customizer/configurations/builder/footer/class-astra-footer-button-component-configs.php
@@ -0,0 +1,48 @@
+<?php
+/**
+ * Astra Theme Customizer Configuration Builder.
+ *
+ * @package astra-builder
+ * @author Astra
+ * @copyright Copyright (c) 2020, Astra
+ * @link https://wpastra.com/
+ * @since 3.0.0
+ */
+
+// No direct access, please.
+if ( ! defined( 'ABSPATH' ) ) {
+ exit;
+}
+
+if ( ! class_exists( 'Astra_Customizer_Config_Base' ) ) {
+ return;
+}
+
+/**
+ * Register Builder Customizer Configurations.
+ *
+ * @since 3.0.0
+ */
+class Astra_Footer_Button_Component_Configs extends Astra_Customizer_Config_Base {
+
+ /**
+ * Register Builder Customizer Configurations.
+ *
+ * @param Array $configurations Astra Customizer Configurations.
+ * @param WP_Customize_Manager $wp_customize instance of WP_Customize_Manager.
+ * @since 3.0.0
+ * @return Array Astra Customizer Configurations with updated configurations.
+ */
+ public function register_configuration( $configurations, $wp_customize ) {
+
+ $configurations = Astra_Button_Component_Configs::register_configuration( $configurations, 'footer', 'section-fb-button-' );
+
+ return $configurations;
+ }
+}
+
+/**
+ * Kicking this off by creating object of this class.
+ */
+
+new Astra_Footer_Button_Component_Configs();
diff --git a/inc/customizer/configurations/builder/footer/class-astra-footer-html-component-configs.php b/inc/customizer/configurations/builder/footer/class-astra-footer-html-component-configs.php
new file mode 100644
index 0000000..5671c5e
--- /dev/null
+++ b/inc/customizer/configurations/builder/footer/class-astra-footer-html-component-configs.php
@@ -0,0 +1,48 @@
+<?php
+/**
+ * Astra Theme Customizer Configuration Builder.
+ *
+ * @package astra-builder
+ * @author Astra
+ * @copyright Copyright (c) 2020, Astra
+ * @link https://wpastra.com/
+ * @since 3.0.0
+ */
+
+// No direct access, please.
+if ( ! defined( 'ABSPATH' ) ) {
+ exit;
+}
+
+if ( ! class_exists( 'Astra_Customizer_Config_Base' ) ) {
+ return;
+}
+
+/**
+ * Register Builder Customizer Configurations.
+ *
+ * @since 3.0.0
+ */
+class Astra_Footer_Html_Component_Configs extends Astra_Customizer_Config_Base {
+
+ /**
+ * Register Builder Customizer Configurations.
+ *
+ * @param Array $configurations Astra Customizer Configurations.
+ * @param WP_Customize_Manager $wp_customize instance of WP_Customize_Manager.
+ * @since 3.0.0
+ * @return Array Astra Customizer Configurations with updated configurations.
+ */
+ public function register_configuration( $configurations, $wp_customize ) {
+
+ $configurations = Astra_Html_Component_Configs::register_configuration( $configurations, 'footer', 'section-fb-html-' );
+
+ return $configurations;
+ }
+}
+
+/**
+ * Kicking this off by creating object of this class.
+ */
+
+new Astra_Footer_Html_Component_Configs();
diff --git a/inc/customizer/configurations/builder/footer/class-astra-footer-widget-component-configs.php b/inc/customizer/configurations/builder/footer/class-astra-footer-widget-component-configs.php
new file mode 100644
index 0000000..5ba4f18
--- /dev/null
+++ b/inc/customizer/configurations/builder/footer/class-astra-footer-widget-component-configs.php
@@ -0,0 +1,51 @@
+<?php
+/**
+ * Astra Theme Customizer Configuration Builder.
+ *
+ * @package astra-builder
+ * @author Astra
+ * @copyright Copyright (c) 2020, Astra
+ * @link https://wpastra.com/
+ * @since 3.0.0
+ */
+
+// No direct access, please.
+if ( ! defined( 'ABSPATH' ) ) {
+ exit;
+}
+
+if ( ! class_exists( 'Astra_Customizer_Config_Base' ) ) {
+ return;
+}
+
+/**
+ * Register Builder Customizer Configurations.
+ *
+ * @since 3.0.0
+ */
+class Astra_Footer_Widget_Component_Configs extends Astra_Customizer_Config_Base {
+
+
+
+ /**
+ * Register Builder Customizer Configurations.
+ *
+ * @param Array $configurations Astra Customizer Configurations.
+ * @param WP_Customize_Manager $wp_customize instance of WP_Customize_Manager.
+ * @since 3.0.0
+ * @return Array Astra Customizer Configurations with updated configurations.
+ */
+ public function register_configuration( $configurations, $wp_customize ) {
+
+ $html_config = Astra_Builder_Base_Configuration::prepare_widget_options( 'footer' );
+ $configurations = array_merge( $configurations, $html_config );
+ return $configurations;
+ }
+}
+
+/**
+ * Kicking this off by creating object of this class.
+ */
+
+new Astra_Footer_Widget_Component_Configs();
+