oont-contents/plugins/astra-addon/addons/woocommerce/classes/sections/class-astra-woocommerce-shop-configs.php
2025-02-08 15:10:23 +01:00

1029 lines
35 KiB
PHP

<?php
/**
* Shop Options for our theme.
*
* @package Astra Addon
* @link https://www.brainstormforce.com
* @since Astra 1.4.3
*/
// Block direct access to the file.
if ( ! defined( 'ABSPATH' ) ) {
exit;
}
// Bail if Customizer config base class does not exist.
if ( ! class_exists( 'Astra_Customizer_Config_Base' ) ) {
return;
}
if ( ! class_exists( 'Astra_Woocommerce_Shop_Configs' ) ) {
/**
* Register Woocommerce Shop Layout Configurations.
*/
// @codingStandardsIgnoreStart
class Astra_Woocommerce_Shop_Configs extends Astra_Customizer_Config_Base {
// phpcs:ignore WordPress.NamingConventions.PrefixAllGlobals.NonPrefixedClassFound
// @codingStandardsIgnoreEnd
/**
* Register Woocommerce Shop Layout Configurations.
*
* @param Array $configurations Astra Customizer Configurations.
* @param WP_Customize_Manager $wp_customize instance of WP_Customize_Manager.
* @since 1.4.3
* @return Array Astra Customizer Configurations with updated configurations.
*/
public function register_configuration( $configurations, $wp_customize ) {
$easy_list_view_attr = array();
/**
* Easy view control.
*/
$easy_list_view_attr['easy_view'] = array(
'clone' => false,
'is_parent' => true,
'main_index' => 'easy_view',
'clone_limit' => 2,
'title' => __( 'Easy List View', 'astra-addon' ),
);
$_configs = array(
/**
* Option: Divider
*/
array(
'name' => ASTRA_THEME_SETTINGS . '[woo-shop-toolbar-divider]',
'section' => 'woocommerce_product_catalog',
'title' => __( 'Toolbar Structure', 'astra-addon' ),
'type' => 'control',
'control' => 'ast-heading',
'priority' => 15,
'settings' => array(),
'divider' => array( 'ast_class' => 'ast-section-spacing' ),
),
/**
* Option: Toolbar Structure.
*/
array(
'name' => ASTRA_THEME_SETTINGS . '[shop-toolbar-structure]',
'type' => 'control',
'control' => 'ast-sortable',
'sanitize_callback' => array( 'Astra_Customizer_Sanitizes', 'sanitize_multi_choices' ),
'section' => 'woocommerce_product_catalog',
'default' => astra_get_option( 'shop-toolbar-structure' ),
'priority' => 15,
'consider_hidden' => true,
'hidden_dataset' => ASTRA_THEME_SETTINGS . '[shop-toolbar-structure-with-hiddenset]',
'choices' => array_merge(
array(
'filters' => __( 'Filter', 'astra-addon' ),
'results' => __( 'Result Count', 'astra-addon' ),
'sorting' => __( 'Sorting', 'astra-addon' ),
),
$easy_list_view_attr
),
'divider' => array( 'ast_class' => 'ast-section-spacing' ),
),
/**
* Easy list disable description.
*/
array(
'name' => 'easy-list-content-enable-description',
'parent' => ASTRA_THEME_SETTINGS . '[shop-toolbar-structure]',
'default' => astra_get_option( 'easy-list-content-enable-description' ),
'linked' => 'easy_view',
'type' => 'sub-control',
'control' => 'ast-toggle',
'section' => 'woocommerce_product_catalog',
'priority' => 15,
'title' => __( 'Enable Description', 'astra-addon' ),
),
/**
* Option: Easy list columns.
*/
array(
'name' => 'easy-list-grids',
'parent' => ASTRA_THEME_SETTINGS . '[shop-toolbar-structure]',
'type' => 'sub-control',
'linked' => 'easy_view',
'control' => 'ast-responsive-slider',
'sanitize_callback' => array( 'Astra_Customizer_Sanitizes', 'sanitize_responsive_slider' ),
'section' => 'woocommerce_product_catalog',
'transport' => 'postMessage',
'default' => astra_get_option(
'easy-list-grids',
array(
'desktop' => 2,
'tablet' => 1,
'mobile' => 1,
)
),
'priority' => 15,
'title' => __( 'List Columns', 'astra-addon' ),
'input_attrs' => array(
'step' => 1,
'min' => 1,
'max' => 2,
),
),
/**
* Option: Easy list alignment.
*/
array(
'name' => 'easy-list-content-alignment',
'parent' => ASTRA_THEME_SETTINGS . '[shop-toolbar-structure]',
'default' => astra_get_option( 'easy-list-content-alignment' ),
'section' => 'woocommerce_product_catalog',
'linked' => 'easy_view',
'type' => 'sub-control',
'control' => 'ast-selector',
'title' => __( 'Content Alignment', 'astra-addon' ),
'priority' => 15,
'choices' => array(
'top' => __( 'Top', 'astra-addon' ),
'center' => __( 'Center', 'astra-addon' ),
),
'renderAs' => 'text',
'responsive' => true,
),
/**
* Dataset with hidden dataset.
*/
array(
'name' => ASTRA_THEME_SETTINGS . '[shop-toolbar-structure-with-hiddenset]',
'section' => 'woocommerce_product_catalog',
'type' => 'control',
'control' => 'ast-hidden',
'priority' => 15,
'partial' => false,
'default' => astra_get_option( 'shop-toolbar-structure-with-hiddenset' ),
),
/**
* Shop single product background color
*/
array(
'name' => ASTRA_THEME_SETTINGS . '[shop-product-background-color]',
'default' => astra_get_option( 'shop-product-background-color' ),
'type' => 'control',
'section' => 'woocommerce_product_catalog',
'control' => 'ast-color',
'sanitize_callback' => array( 'Astra_Customizer_Sanitizes', 'sanitize_alpha_color' ),
'transport' => 'postMessage',
'title' => __( 'Product Background', 'astra-addon' ),
'priority' => 228.5,
'context' => array(
astra_addon_builder_helper()->design_tab_config,
),
),
/**
* Shop Quick View Background
*/
array(
'name' => ASTRA_THEME_SETTINGS . '[quick-view-background-color]',
'default' => astra_get_option( 'quick-view-background-color' ),
'type' => 'control',
'section' => 'woocommerce_product_catalog',
'control' => 'ast-color',
'sanitize_callback' => array( 'Astra_Customizer_Sanitizes', 'sanitize_alpha_color' ),
'transport' => 'postMessage',
'title' => __( 'Quick View Background', 'astra-addon' ),
'priority' => 228.5,
'context' => array(
astra_addon_builder_helper()->design_tab_config,
),
),
/**
* Filter flyout background color
*/
array(
'name' => ASTRA_THEME_SETTINGS . '[filter-background-color]',
'default' => astra_get_option( 'filter-background-color' ),
'type' => 'control',
'section' => 'woocommerce_product_catalog',
'control' => 'ast-color',
'sanitize_callback' => array( 'Astra_Customizer_Sanitizes', 'sanitize_alpha_color' ),
'transport' => 'postMessage',
'title' => __( 'Filter Background', 'astra-addon' ),
'priority' => 228.6,
'context' => array(
astra_addon_builder_helper()->design_tab_config,
array(
'setting' => ASTRA_THEME_SETTINGS . '[shop-filter-position]',
'operator' => 'contains',
'value' => 'shop-filter-flyout',
),
array(
'setting' => ASTRA_THEME_SETTINGS . '[shop-toolbar-structure]',
'operator' => 'contains',
'value' => 'filters',
),
),
'divider' => array( 'ast_class' => 'ast-bottom-spacing' ),
),
/**
* Option: Product content padding
*/
array(
'name' => ASTRA_THEME_SETTINGS . '[shop-product-content-padding]',
'default' => astra_get_option( 'shop-product-content-padding' ),
'type' => 'control',
'control' => 'ast-responsive-spacing',
'sanitize_callback' => array( 'Astra_Customizer_Sanitizes', 'sanitize_responsive_spacing' ),
'section' => 'woocommerce_product_catalog',
'title' => __( 'Content Padding', 'astra-addon' ),
'linked_choices' => true,
'transport' => 'postMessage',
'unit_choices' => array( 'px', 'em', '%' ),
'choices' => array(
'top' => __( 'Top', 'astra-addon' ),
'right' => __( 'Right', 'astra-addon' ),
'bottom' => __( 'Bottom', 'astra-addon' ),
'left' => __( 'Left', 'astra-addon' ),
),
'priority' => 230,
'context' => array(
astra_addon_builder_helper()->design_tab_config,
),
'divider' => array( 'ast_class' => 'ast-bottom-section-divider' ),
),
// Option Group: Box shadow Group.
array(
'name' => ASTRA_THEME_SETTINGS . '[shop-items-box-shadow-group]',
'type' => 'control',
'control' => 'ast-settings-group',
'title' => __( 'Box Shadow', 'astra-addon' ),
'section' => 'woocommerce_product_catalog',
'transport' => 'postMessage',
'priority' => 230,
'context' => array(
astra_addon_builder_helper()->design_tab_config,
),
'divider' => array( 'ast_class' => 'ast-bottom-dotted-divider' ),
),
/**
* Option: box shadow
*/
array(
'name' => 'shop-item-box-shadow-control',
'default' => astra_get_option( 'shop-item-box-shadow-control' ),
'parent' => ASTRA_THEME_SETTINGS . '[shop-items-box-shadow-group]',
'type' => 'sub-control',
'transport' => 'postMessage',
'control' => 'ast-box-shadow',
'section' => 'woocommerce_product_catalog',
'sanitize_callback' => array( 'Astra_Addon_Customizer', 'sanitize_box_shadow' ),
'priority' => 1,
'title' => __( 'Value', 'astra-addon' ),
'choices' => array(
'x' => __( 'X', 'astra-addon' ),
'y' => __( 'Y', 'astra-addon' ),
'blur' => __( 'Blur', 'astra-addon' ),
'spread' => __( 'Spread', 'astra-addon' ),
),
),
array(
'name' => 'shop-item-box-shadow-position',
'default' => astra_get_option( 'shop-item-box-shadow-position' ),
'parent' => ASTRA_THEME_SETTINGS . '[shop-items-box-shadow-group]',
'type' => 'sub-control',
'section' => 'woocommerce_product_catalog',
'transport' => 'postMessage',
'control' => 'ast-select',
'title' => __( 'Position', 'astra-addon' ),
'choices' => array(
'outline' => __( 'Outline', 'astra-addon' ),
'inset' => __( 'Inset', 'astra-addon' ),
),
'priority' => 2,
),
array(
'name' => 'shop-item-box-shadow-color',
'default' => astra_get_option( 'shop-item-box-shadow-color' ),
'parent' => ASTRA_THEME_SETTINGS . '[shop-items-box-shadow-group]',
'type' => 'sub-control',
'section' => 'woocommerce_product_catalog',
'transport' => 'postMessage',
'control' => 'ast-color',
'title' => __( 'Color', 'astra-addon' ),
'rgba' => true,
'priority' => 3,
),
// Option Group: Box shadow Hover Group.
array(
'name' => ASTRA_THEME_SETTINGS . '[shop-items-hover-box-shadow-group]',
'type' => 'control',
'control' => 'ast-settings-group',
'title' => __( 'Box Hover Shadow', 'astra-addon' ),
'section' => 'woocommerce_product_catalog',
'transport' => 'postMessage',
'priority' => 230,
'context' => array(
astra_addon_builder_helper()->design_tab_config,
),
),
/**
* Option: box shadow
*/
array(
'name' => 'shop-item-hover-box-shadow-control',
'default' => astra_get_option( 'shop-item-hover-box-shadow-control' ),
'parent' => ASTRA_THEME_SETTINGS . '[shop-items-hover-box-shadow-group]',
'type' => 'sub-control',
'transport' => 'postMessage',
'control' => 'ast-box-shadow',
'section' => 'woocommerce_product_catalog',
'sanitize_callback' => array( 'Astra_Addon_Customizer', 'sanitize_box_shadow' ),
'priority' => 1,
'title' => __( 'Value', 'astra-addon' ),
'choices' => array(
'x' => __( 'X', 'astra-addon' ),
'y' => __( 'Y', 'astra-addon' ),
'blur' => __( 'Blur', 'astra-addon' ),
'spread' => __( 'Spread', 'astra-addon' ),
),
),
array(
'name' => 'shop-item-hover-box-shadow-position',
'default' => astra_get_option( 'shop-item-hover-box-shadow-position' ),
'parent' => ASTRA_THEME_SETTINGS . '[shop-items-hover-box-shadow-group]',
'type' => 'sub-control',
'section' => 'woocommerce_product_catalog',
'transport' => 'postMessage',
'control' => 'ast-select',
'title' => __( 'Position', 'astra-addon' ),
'choices' => array(
'outline' => __( 'Outline', 'astra-addon' ),
'inset' => __( 'Inset', 'astra-addon' ),
),
'priority' => 2,
),
array(
'name' => 'shop-item-hover-box-shadow-color',
'default' => astra_get_option( 'shop-item-hover-box-shadow-color' ),
'parent' => ASTRA_THEME_SETTINGS . '[shop-items-hover-box-shadow-group]',
'type' => 'sub-control',
'section' => 'woocommerce_product_catalog',
'transport' => 'postMessage',
'control' => 'ast-color',
'title' => __( 'Color', 'astra-addon' ),
'rgba' => true,
'priority' => 3,
),
/**
* Option: Content alignment for style 2
*/
array(
'name' => ASTRA_THEME_SETTINGS . '[shop-page-list-style-alignment]',
'default' => astra_get_option( 'shop-page-list-style-alignment' ),
'section' => 'woocommerce_product_catalog',
'type' => 'control',
'control' => 'ast-selector',
'title' => __( 'Vertical Content alignment', 'astra-addon' ),
'priority' => 229,
'choices' => array(
'top' => __( 'Top', 'astra-addon' ),
'center' => __( 'Center', 'astra-addon' ),
),
'renderAs' => 'text',
'responsive' => true,
'context' => array(
astra_addon_builder_helper()->design_tab_config,
array(
'setting' => ASTRA_THEME_SETTINGS . '[shop-style]',
'operator' => '==',
'value' => 'shop-page-list-style',
),
),
'divider' => array( 'ast_class' => 'ast-bottom-section-divider' ),
),
/**
* Option: Product Hover Style
*/
array(
'name' => ASTRA_THEME_SETTINGS . '[shop-hover-style]',
'type' => 'control',
'control' => 'ast-select',
'section' => 'woocommerce_product_catalog',
'default' => astra_get_option( 'shop-hover-style' ),
'priority' => 229,
'title' => __( 'Product Image Hover Style', 'astra-addon' ),
'choices' => apply_filters(
'astra_woo_shop_hover_style',
array(
'' => __( 'None', 'astra-addon' ),
'swap' => __( 'Swap Images', 'astra-addon' ),
)
),
'context' => array(
astra_addon_builder_helper()->design_tab_config,
),
'divider' => array( 'ast_class' => 'ast-bottom-section-divider' ),
),
/**
* Option: Button Padding
*/
array(
'name' => ASTRA_THEME_SETTINGS . '[shop-button-padding]',
'default' => astra_get_option( 'shop-button-padding' ),
'type' => 'control',
'control' => 'ast-responsive-spacing',
'sanitize_callback' => array( 'Astra_Customizer_Sanitizes', 'sanitize_responsive_spacing' ),
'section' => 'woocommerce_product_catalog',
'title' => __( 'Button Padding', 'astra-addon' ),
'linked_choices' => true,
'transport' => 'postMessage',
'unit_choices' => array( 'px', 'em', '%' ),
'choices' => array(
'top' => __( 'Top', 'astra-addon' ),
'right' => __( 'Right', 'astra-addon' ),
'bottom' => __( 'Bottom', 'astra-addon' ),
'left' => __( 'Left', 'astra-addon' ),
),
'priority' => 229,
'connected' => false,
'context' => array(
astra_addon_builder_helper()->design_tab_config,
),
'divider' => array( 'ast_class' => 'ast-bottom-section-divider' ),
),
/**
* Option: Divider
*/
array(
'name' => ASTRA_THEME_SETTINGS . '[shop-pagination-divider]',
'section' => 'woocommerce_product_catalog',
'title' => __( 'Shop Pagination', 'astra-addon' ),
'type' => 'control',
'control' => 'ast-heading',
'priority' => 140,
'settings' => array(),
'divider' => array( 'ast_class' => 'ast-section-spacing' ),
),
/**
* Option: Shop Pagination
*/
array(
'name' => ASTRA_THEME_SETTINGS . '[shop-pagination]',
'default' => astra_get_option( 'shop-pagination' ),
'section' => 'woocommerce_product_catalog',
'type' => 'control',
'control' => 'ast-selector',
'title' => __( 'Shop Pagination', 'astra-addon' ),
'priority' => 145,
'choices' => array(
'number' => __( 'Number', 'astra-addon' ),
'infinite' => __( 'Infinite Scroll', 'astra-addon' ),
),
'transport' => 'refresh',
'renderAs' => 'text',
'responsive' => false,
'divider' => array( 'ast_class' => 'ast-bottom-dotted-divider ast-section-spacing' ),
),
/**
* Option: Shop Pagination Style
*/
array(
'name' => ASTRA_THEME_SETTINGS . '[shop-pagination-style]',
'default' => astra_get_option( 'shop-pagination-style' ),
'section' => 'woocommerce_product_catalog',
'type' => 'control',
'control' => 'ast-selector',
'title' => __( 'Shop Pagination Style', 'astra-addon' ),
'priority' => 150,
'choices' => array(
'default' => __( 'Default', 'astra-addon' ),
'square' => __( 'Square', 'astra-addon' ),
'circle' => __( 'Circle', 'astra-addon' ),
),
'transport' => 'postMessage',
'renderAs' => 'text',
'responsive' => false,
'context' => array(
astra_addon_builder_helper()->general_tab_config,
array(
'setting' => ASTRA_THEME_SETTINGS . '[shop-pagination]',
'operator' => '==',
'value' => 'number',
),
),
),
/**
* Option: Event to Trigger Infinite Loading
*/
array(
'name' => ASTRA_THEME_SETTINGS . '[shop-infinite-scroll-event]',
'default' => astra_get_option( 'shop-infinite-scroll-event' ),
'section' => 'woocommerce_product_catalog',
'type' => 'control',
'control' => 'ast-selector',
'title' => __( 'Event to Trigger Infinite Loading', 'astra-addon' ),
'description' => __( 'Infinite Scroll cannot be previewed in the Customizer.', 'astra-addon' ),
'priority' => 155,
'choices' => array(
'scroll' => __( 'Scroll', 'astra-addon' ),
'click' => __( 'Click', 'astra-addon' ),
),
'transport' => 'refresh',
'renderAs' => 'text',
'responsive' => false,
'context' => array(
astra_addon_builder_helper()->general_tab_config,
array(
'setting' => ASTRA_THEME_SETTINGS . '[shop-pagination]',
'operator' => '==',
'value' => 'infinite',
),
),
),
/**
* Option: Read more text
*/
array(
'name' => ASTRA_THEME_SETTINGS . '[shop-load-more-text]',
'default' => astra_get_option( 'shop-load-more-text' ),
'type' => 'control',
'transport' => 'postMessage',
'section' => 'woocommerce_product_catalog',
'priority' => 160,
'title' => __( 'Load More Text', 'astra-addon' ),
'context' => array(
astra_addon_builder_helper()->general_tab_config,
array(
'setting' => ASTRA_THEME_SETTINGS . '[shop-pagination]',
'operator' => '==',
'value' => 'infinite',
),
array(
'setting' => ASTRA_THEME_SETTINGS . '[shop-infinite-scroll-event]',
'operator' => '==',
'value' => 'click',
),
),
'control' => 'text',
'partial' => array(
'selector' => '.ast-shop-pagination-infinite .ast-shop-load-more',
'container_inclusive' => false,
'render_callback' => 'Astra_Customizer_Ext_WooCommerce_Partials::_render_shop_load_more',
),
),
/**
* Option: Divider
*/
array(
'name' => ASTRA_THEME_SETTINGS . '[woo-shop-structure-options-divider]',
'section' => 'woocommerce_product_catalog',
'title' => __( 'Shop Structure Options', 'astra-addon' ),
'type' => 'control',
'control' => 'ast-heading',
'priority' => 29,
'settings' => array(),
'divider' => array( 'ast_class' => 'ast-section-spacing' ),
),
/**
* Option: Display Page Title
*/
array(
'name' => ASTRA_THEME_SETTINGS . '[shop-page-title-display]',
'default' => astra_get_option( 'shop-page-title-display' ),
'type' => 'control',
'section' => 'woocommerce_product_catalog',
'title' => __( 'Display Page Title', 'astra-addon' ),
'priority' => 29,
'control' => Astra_Theme_Extension::$switch_control,
'divider' => array( 'ast_class' => 'ast-section-spacing' ),
),
/**
* Option: Display Breadcrumb
*/
array(
'name' => ASTRA_THEME_SETTINGS . '[shop-breadcrumb-display]',
'default' => astra_get_option( 'shop-breadcrumb-display' ),
'type' => 'control',
'section' => 'woocommerce_product_catalog',
'title' => __( 'Display Breadcrumb', 'astra-addon' ),
'priority' => 29,
'control' => Astra_Theme_Extension::$switch_control,
),
/**
* Option: Enable Sticky Sidebar.
*/
array(
'name' => ASTRA_THEME_SETTINGS . '[shop-active-filters-sticky-sidebar]',
'default' => astra_get_option( 'shop-active-filters-sticky-sidebar' ),
'type' => 'control',
'section' => 'woocommerce_product_catalog',
'title' => __( 'Enable Sticky Sidebar', 'astra-addon' ),
'priority' => 29,
'control' => Astra_Theme_Extension::$switch_control,
),
/**
* Option: Shop filter list to buttons.
*/
array(
'name' => ASTRA_THEME_SETTINGS . '[shop-filter-list-to-buttons]',
'default' => astra_get_option( 'shop-filter-list-to-buttons' ),
'type' => 'control',
'section' => 'woocommerce_product_catalog',
'title' => __( 'Change Filter List To Buttons', 'astra-addon' ),
'priority' => 29,
'control' => Astra_Theme_Extension::$switch_control,
),
/**
* Option: Enable / Disable Filter Accordion.
*/
array(
'name' => ASTRA_THEME_SETTINGS . '[shop-filter-accordion]',
'default' => astra_get_option( 'shop-filter-accordion' ),
'type' => 'control',
'section' => 'woocommerce_product_catalog',
'title' => __( 'Enable Filter Accordion', 'astra-addon' ),
'control' => Astra_Theme_Extension::$switch_control,
'priority' => 29,
),
/**
* Option: Blog Reveal Effect.
*/
array(
'name' => ASTRA_THEME_SETTINGS . '[shop-reveal-effect]',
'default' => astra_get_option( 'shop-reveal-effect' ),
'type' => 'control',
'control' => Astra_Theme_Extension::$switch_control,
'section' => 'woocommerce_product_catalog',
'title' => __( 'Reveal Effect', 'astra-addon' ),
'priority' => 29,
),
/**
* Option: Display Active Filters
*/
array(
'name' => ASTRA_THEME_SETTINGS . '[shop-active-filters-display]',
'default' => astra_get_option( 'shop-active-filters-display' ),
'type' => 'control',
'section' => 'woocommerce_product_catalog',
'context' => array(
astra_addon_builder_helper()->general_tab_config,
array(
'setting' => ASTRA_THEME_SETTINGS . '[shop-toolbar-structure]',
'operator' => 'contains',
'value' => 'filters',
),
),
'title' => __( 'Display Active Filters', 'astra-addon' ),
'priority' => 29,
'control' => Astra_Theme_Extension::$switch_control,
),
/**
* Option: Divider
*/
array(
'name' => ASTRA_THEME_SETTINGS . '[shop-filters-heading]',
'section' => 'woocommerce_product_catalog',
'title' => __( 'Shop Filters', 'astra-addon' ),
'type' => 'control',
'control' => 'ast-heading',
'priority' => 200,
'settings' => array(),
'divider' => array( 'ast_class' => 'ast-section-spacing' ),
'context' => array(
astra_addon_builder_helper()->general_tab_config,
array(
'setting' => ASTRA_THEME_SETTINGS . '[shop-toolbar-structure]',
'operator' => 'contains',
'value' => 'filters',
),
),
),
/**
* Option: Display Off Canvas On Click Of
*/
array(
'name' => ASTRA_THEME_SETTINGS . '[shop-off-canvas-trigger-type]',
'default' => astra_get_option( 'shop-off-canvas-trigger-type' ),
'type' => 'control',
'control' => 'ast-selector',
'renderAs' => 'text',
'responsive' => false,
'section' => 'woocommerce_product_catalog',
'priority' => 200,
'title' => __( 'Shop Filter Button', 'astra-addon' ),
'choices' => array(
'link' => __( 'Link', 'astra-addon' ),
'button' => __( 'Button', 'astra-addon' ),
'custom-class' => __( 'Custom Class', 'astra-addon' ),
),
'divider' => array( 'ast_class' => 'ast-section-spacing ast-bottom-dotted-divider' ),
'context' => array(
astra_addon_builder_helper()->general_tab_config,
array(
'setting' => ASTRA_THEME_SETTINGS . '[shop-toolbar-structure]',
'operator' => 'contains',
'value' => 'filters',
),
),
),
/**
* Option: Custom Class
*/
array(
'name' => ASTRA_THEME_SETTINGS . '[shop-filter-trigger-custom-class]',
'default' => astra_get_option( 'shop-filter-trigger-custom-class' ),
'type' => 'control',
'section' => 'woocommerce_product_catalog',
'context' => array(
astra_addon_builder_helper()->general_tab_config,
array(
'setting' => ASTRA_THEME_SETTINGS . '[shop-off-canvas-trigger-type]',
'operator' => '==',
'value' => 'custom-class',
),
array(
'setting' => ASTRA_THEME_SETTINGS . '[shop-toolbar-structure]',
'operator' => 'contains',
'value' => 'filters',
),
),
'priority' => 200,
'title' => __( 'Custom Class', 'astra-addon' ),
'control' => 'text',
),
/**
* Option: Filter Button Text
*/
array(
'name' => ASTRA_THEME_SETTINGS . '[shop-filter-trigger-link]',
'default' => astra_get_option( 'shop-filter-trigger-link' ),
'type' => 'control',
'section' => 'woocommerce_product_catalog',
'priority' => 200,
'title' => __( 'Shop Filter Button Text', 'astra-addon' ),
'control' => 'text',
'context' => array(
astra_addon_builder_helper()->general_tab_config,
array(
'setting' => ASTRA_THEME_SETTINGS . '[shop-off-canvas-trigger-type]',
'operator' => 'in',
'value' => array( 'button', 'link' ),
),
array(
'setting' => ASTRA_THEME_SETTINGS . '[shop-toolbar-structure]',
'operator' => 'contains',
'value' => 'filters',
),
),
),
/**
* Option: Choose Filter position
*/
array(
'name' => ASTRA_THEME_SETTINGS . '[shop-filter-position]',
'default' => astra_get_option( 'shop-filter-position' ),
'type' => 'control',
'section' => 'woocommerce_product_catalog',
'title' => __( 'Filter Panel Layout', 'astra-addon' ),
'control' => 'ast-selector',
'renderAs' => 'text',
'responsive' => false,
'priority' => 200,
'choices' => array(
'shop-filter-collapsible' => __( 'Top Collapsible', 'astra-addon' ),
'shop-filter-flyout' => __( 'Flyout', 'astra-addon' ),
),
'context' => array(
astra_addon_builder_helper()->general_tab_config,
array(
'setting' => ASTRA_THEME_SETTINGS . '[shop-off-canvas-trigger-type]',
'operator' => 'in',
'value' => array( 'button', 'link', 'custom-class' ),
),
array(
'setting' => ASTRA_THEME_SETTINGS . '[shop-toolbar-structure]',
'operator' => 'contains',
'value' => 'filters',
),
),
'divider' => array( 'ast_class' => 'ast-top-section-divider' ),
),
/**
* Option: Filter collapsable number of columns.
*/
array(
'name' => ASTRA_THEME_SETTINGS . '[shop-filter-collapsable-columns]',
'section' => 'woocommerce_product_catalog',
'priority' => 200,
'default' => astra_get_option( 'shop-filter-collapsable-columns' ),
'title' => __( 'Filter columns', 'astra-addon' ),
'type' => 'control',
'control' => 'ast-responsive-slider',
'input_attrs' => array(
'min' => 1,
'step' => 1,
'max' => 6,
),
'divider' => array( 'ast_class' => 'ast-top-dotted-divider' ),
'context' => array(
astra_addon_builder_helper()->general_tab_config,
array(
'setting' => ASTRA_THEME_SETTINGS . '[shop-filter-position]',
'operator' => 'in',
'value' => array( 'shop-filter-collapsible' ),
),
array(
'setting' => ASTRA_THEME_SETTINGS . '[shop-off-canvas-trigger-type]',
'operator' => 'in',
'value' => array( 'button', 'link', 'custom-class' ),
),
array(
'setting' => ASTRA_THEME_SETTINGS . '[shop-toolbar-structure]',
'operator' => 'contains',
'value' => 'filters',
),
),
),
/**
* Option: Enable / Disable Scrollbar Max Height.
*/
array(
'name' => ASTRA_THEME_SETTINGS . '[shop-filter-max-height]',
'default' => astra_get_option( 'shop-filter-max-height' ),
'type' => 'control',
'section' => 'woocommerce_product_catalog',
'title' => __( 'Enable Scrollbar Max Height', 'astra-addon' ),
'control' => Astra_Theme_Extension::$switch_control,
'priority' => 200,
'divider' => array( 'ast_class' => 'ast-top-section-divider' ),
'context' => array(
astra_addon_builder_helper()->general_tab_config,
array(
'setting' => ASTRA_THEME_SETTINGS . '[shop-filter-position]',
'operator' => 'in',
'value' => array( 'shop-filter-collapsible' ),
),
array(
'setting' => ASTRA_THEME_SETTINGS . '[shop-off-canvas-trigger-type]',
'operator' => 'in',
'value' => array( 'button', 'link', 'custom-class' ),
),
array(
'setting' => ASTRA_THEME_SETTINGS . '[shop-toolbar-structure]',
'operator' => 'contains',
'value' => 'filters',
),
),
),
/**
* Option: Scrollbar Max Height.
*/
array(
'name' => ASTRA_THEME_SETTINGS . '[shop-filter-scrollbar-max-height]',
'default' => astra_get_option( 'shop-filter-scrollbar-max-height' ),
'type' => 'control',
'section' => 'woocommerce_product_catalog',
'title' => __( 'Scrollbar Max Height', 'astra-addon' ),
'sanitize_callback' => array( 'Astra_Customizer_Sanitizes', 'sanitize_number_n_blank' ),
'control' => 'ast-slider',
'suffix' => 'px',
'transport' => 'postMessage',
'priority' => 200,
'input_attrs' => array(
'min' => 1,
'step' => 1,
'max' => 300,
),
'divider' => array( 'ast_class' => 'ast-top-dotted-divider' ),
'context' => array(
astra_addon_builder_helper()->general_tab_config,
array(
'setting' => ASTRA_THEME_SETTINGS . '[shop-off-canvas-trigger-type]',
'operator' => 'in',
'value' => array( 'button', 'link', 'custom-class' ),
),
array(
'setting' => ASTRA_THEME_SETTINGS . '[shop-filter-max-height]',
'operator' => '==',
'value' => true,
),
array(
'setting' => ASTRA_THEME_SETTINGS . '[shop-toolbar-structure]',
'operator' => 'contains',
'value' => 'filters',
),
),
),
/**
* Option: Divider.
*/
array(
'name' => ASTRA_THEME_SETTINGS . '[woo-shop-layout-divider]',
'section' => 'woocommerce_product_catalog',
'title' => __( 'Quick View', 'astra-addon' ),
'type' => 'control',
'control' => 'ast-heading',
'priority' => 91,
'settings' => array(),
'divider' => array( 'ast_class' => 'ast-section-spacing' ),
),
/**
* Option: Enable Quick View
*/
array(
'name' => ASTRA_THEME_SETTINGS . '[shop-quick-view-enable]',
'default' => astra_get_option( 'shop-quick-view-enable' ),
'type' => 'control',
'section' => 'woocommerce_product_catalog',
'title' => __( 'Quick View', 'astra-addon' ),
'control' => 'ast-select',
'priority' => 91,
'choices' => array(
'disabled' => __( 'Disabled', 'astra-addon' ),
'on-image' => __( 'On Image', 'astra-addon' ),
'on-image-click' => __( 'On Image Click', 'astra-addon' ),
'after-summary' => __( 'After Summary', 'astra-addon' ),
),
'divider' => array( 'ast_class' => 'ast-section-spacing' ),
),
/**
* Option: Stick Quick View
*/
array(
'name' => ASTRA_THEME_SETTINGS . '[shop-quick-view-stick-cart]',
'default' => astra_get_option( 'shop-quick-view-stick-cart' ),
'type' => 'control',
'section' => 'woocommerce_product_catalog',
'title' => __( 'Stick Add to Cart Button', 'astra-addon' ),
'description' => __( 'If contents of the popup is larger then the button will stick at the end of the popup.', 'astra-addon' ),
'control' => Astra_Theme_Extension::$switch_control,
'priority' => 91,
'context' => array(
astra_addon_builder_helper()->general_tab_config,
array(
'setting' => ASTRA_THEME_SETTINGS . '[shop-quick-view-enable]',
'operator' => '!=',
'value' => 'disabled',
),
),
'divider' => array( 'ast_class' => 'ast-top-dotted-divider' ),
),
);
$configurations = array_merge( $configurations, $_configs );
return $configurations;
}
}
}
new Astra_Woocommerce_Shop_Configs();