Plugin Directory

Changeset 3801351


Ignore:
Timestamp:
11/14/2026 02:22:56 AM (less than one hour ago)
Author:
markutos987
Message:

Improve ux

Location:
filter-plus
Files:
186 added
12 edited

Legend:

Unmodified
Added
Removed
  • filter-plus/trunk/assets/js/gallery-image-controls.js

    r3798363 r3801351  
    88    const ToggleControl = wp.components.ToggleControl;
    99    const SelectControl = wp.components.SelectControl;
     10    const FormTokenField = wp.components.FormTokenField;
     11    const BaseControl = wp.components.BaseControl || wp.element.Fragment;
    1012    const NumberControl = wp.components.__experimentalNumberControl || wp.components.TextControl;
    1113    if (!InspectorControls || !PanelBody || !ToggleControl || !SelectControl || !NumberControl) return;
    … …  
    1517                return createElement(BlockEdit, props);
    1618            }
    17             const pro = !!(window.filterPlus && window.filterPlus.is_pro_active === 0);
     19            // wp_localize_script normally passes a number, but another script
     20            // may expose the same flag as a numeric string. Accept both.
     21            const pro = !!(window.filterPlus && Number(window.filterPlus.is_pro_active) === 0);
    1822            const attrs = props.attributes || {};
    1923            const sliderOn = !!attrs.gallery_slider;
    … …  
    2630                createElement(InspectorControls, null,
    2731                    createElement(PanelBody, { title: 'Gallery Image Options' + (pro ? '' : ' (Pro)'), initialOpen: false },
    28                         createElement(ToggleControl, { label: label('Rollover Image'), help: modeHelp, checked: !!attrs.rollover_image, disabled: !pro || sliderOn, onChange: function (v) { props.setAttributes({ rollover_image: v, gallery_slider: v ? false : !!attrs.gallery_slider }); } }),
     32                        createElement(ToggleControl, { label: label('Rollover Image'), help: modeHelp, checked: !!attrs.rollover_image, disabled: !pro, onChange: function (v) { props.setAttributes({ rollover_image: v, gallery_slider: v ? false : !!attrs.gallery_slider }); } }),
    2933                        rolloverOn ? createElement(NumberControl, { label: label('Hover Gallery Image (1-5)'), help: pro ? 'Choose the gallery image shown on hover; the last available image is used when needed.' : help, min: 1, max: 5, value: attrs.rollover_image_number || 1, disabled: !pro, onChange: function (v) { props.setAttributes({ rollover_image_number: Math.max(1, Math.min(5, parseInt(v, 10) || 1)) }); } }) : null,
    3034                        rolloverOn ? createElement(SelectControl, { label: label('Rollover Transition'), help: help, value: attrs.rollover_effect || 'fade', disabled: !pro, options: [{ label: 'Fade', value: 'fade' }, { label: 'Fade + Zoom', value: 'zoom' }, { label: 'None', value: 'none' }], onChange: function (v) { props.setAttributes({ rollover_effect: v }); } }) : null,
    31                         createElement(ToggleControl, { label: label('Gallery Slider'), help: modeHelp, checked: !!attrs.gallery_slider, disabled: !pro || rolloverOn, onChange: function (v) { props.setAttributes({ gallery_slider: v, rollover_image: v ? false : !!attrs.rollover_image }); } })
     35                        createElement(ToggleControl, { label: label('Gallery Slider'), help: modeHelp, checked: !!attrs.gallery_slider, disabled: !pro, onChange: function (v) { props.setAttributes({ gallery_slider: v, rollover_image: v ? false : !!attrs.rollover_image }); } })
     36                    ),
     37                    createElement(PanelBody, { title: 'Product Attributes' + (pro ? '' : ' (Pro)'), initialOpen: false },
     38                        createElement(ToggleControl, {
     39                            label: label('Show Attributes'),
     40                            help: help,
     41                            checked: !!attrs.show_product_attributes,
     42                            disabled: !pro,
     43                            onChange: function (v) { props.setAttributes({ show_product_attributes: v }); }
     44                        }),
     45                        attrs.show_product_attributes ? (function () {
     46                            const opts = (window.filterPlus && Array.isArray(window.filterPlus.attributes) ? window.filterPlus.attributes : []).map(function (item) {
     47                                return { label: String(item.label), value: String(item.value) };
     48                            });
     49                            const selected = Array.isArray(attrs.product_attributes) ? attrs.product_attributes.map(String) : [];
     50                            const byValue = function (v) { const f = opts.find(function (o) { return o.value === String(v); }); return f ? f.label : String(v); };
     51                            const byLabel = function (l) { const f = opts.find(function (o) { return o.label === String(l); }); return f ? f.value : null; };
     52                            // Select2-style searchable multi select (chips + dropdown).
     53                            if (!FormTokenField) {
     54                                return createElement(SelectControl, { multiple: true, label: label('Attribute List'), help: help, value: selected, options: opts, disabled: !pro, onChange: function (v) { props.setAttributes({ product_attributes: v || [] }); } });
     55                            }
     56                            return createElement(BaseControl, { help: help, __nextHasNoMarginBottom: true },
     57                                createElement(FormTokenField, {
     58                                    label: label('Attribute List'),
     59                                    value: selected.map(byValue),
     60                                    suggestions: opts.map(function (o) { return o.label; }),
     61                                    disabled: !pro,
     62                                    __experimentalExpandOnFocus: true,
     63                                    __experimentalShowHowTo: false,
     64                                    __experimentalValidateInput: function (t) { return null !== byLabel(t); },
     65                                    __next40pxDefaultSize: true,
     66                                    __nextHasNoMarginBottom: true,
     67                                    onChange: function (tokens) {
     68                                        const values = [];
     69                                        tokens.forEach(function (t) {
     70                                            const v = byLabel(t && 'object' === typeof t ? t.value : t);
     71                                            if (null !== v && values.indexOf(v) === -1) { values.push(v); }
     72                                        });
     73                                        props.setAttributes({ product_attributes: values });
     74                                    }
     75                                })
     76                            );
     77                        })() : null
    3278                    )
    3379                )
  • filter-plus/trunk/base/data-factory.php

    r3799880 r3801351  
    220220                $default_data['image_width']        = ( class_exists( 'FilterPlusPro' ) && ! empty( $settings['image_width'] ) )  ? intval( $settings['image_width'] )  : '';
    221221                $default_data['image_height']       = ( class_exists( 'FilterPlusPro' ) && ! empty( $settings['image_height'] ) ) ? intval( $settings['image_height'] ) : '';
    222                 $default_data['rollover_image']      = ( class_exists( 'FilterPlusPro' ) && ! empty( $settings['rollover_image'] ) ) ? 'yes' : 'no';
     222                $image_mode_enabled = static function ( $value ) {
     223                        return true === $value || 1 === $value || '1' === $value || 'yes' === $value;
     224                };
     225                $default_data['rollover_image']      = ( class_exists( 'FilterPlusPro' ) && isset( $settings['rollover_image'] ) && $image_mode_enabled( $settings['rollover_image'] ) ) ? 'yes' : 'no';
    223226                $default_data['rollover_image_number'] = ( class_exists( 'FilterPlusPro' ) && isset( $settings['rollover_image_number'] ) ) ? max( 1, min( 5, absint( $settings['rollover_image_number'] ) ) ) : 1;
    224                 $default_data['rollover_effect'] = ( class_exists( 'FilterPlusPro' ) && in_array( $settings['rollover_effect'] ?? 'fade', array( 'fade', 'zoom', 'none' ), true ) ) ? $settings['rollover_effect'] : 'fade';
    225                 $default_data['gallery_slider']      = ( class_exists( 'FilterPlusPro' ) && ! empty( $settings['gallery_slider'] ) ) ? 'yes' : 'no';
     227                $default_data['rollover_effect'] = ( class_exists( 'FilterPlusPro' ) && in_array( $settings['rollover_effect'] ?? 'fade', array( 'fade', 'zoom', 'none' ), true ) ) ? ( $settings['rollover_effect'] ?? 'fade' ) : 'fade';
     228                $default_data['gallery_slider']      = ( class_exists( 'FilterPlusPro' ) && isset( $settings['gallery_slider'] ) && $image_mode_enabled( $settings['gallery_slider'] ) ) ? 'yes' : 'no';
    226229                $default_data['show_product_attributes'] = ( class_exists( 'FilterPlusPro' ) && ! empty( $settings['show_product_attributes'] ) && 'yes' === $settings['show_product_attributes'] ) ? 'yes' : 'no';
    227230                $product_attribute_ids = $settings['product_attributes'] ?? array();
    … …  
    317320                        'rollover_effect' => $rollover_effect,
    318321                        'gallery_slider' => $gallery_slider,
     322                        // Product card attributes (Pro). Without these the Elementor/Bricks
     323                        // widgets never showed the selected attributes (e.g. color swatches).
     324                        'show_product_attributes' => $show_product_attributes,
     325                        'product_attributes' => $product_attributes,
    319326                        'hide_prod_rating' => $hide_prod_rating,
    320327                        'size_label' => $size_label,
  • filter-plus/trunk/core/frontend/search-filter/actions.php

    r3799880 r3801351  
    719719         * @return array
    720720         */
    721         public function render_products_html($products, $filter_type, $template) {
     721        public function render_products_html($products, $filter_type, $template, $render_settings = null) {
    722722                $render_selected_attributes = static function ( $card_html, $product_data, $post_data ) {
    723723                        // Only the attributes selected in "Attribute List" are shown.
    … …  
    736736                        $selected = array_filter( $selected_keys );
    737737                        if ( empty( $selected ) ) { return $card_html; }
     738                        // Template 7 draws its own color swatches unless the color attribute
     739                        // was present in the AJAX POST. Keep preview and live output aligned.
     740                        if ( in_array( 'color', $selected, true ) ) {
     741                                $card_html = preg_replace( '/<div class="t7-swatches">.*?<\/div>/s', '', $card_html );
     742                        }
    738743                        $wc_product = wc_get_product( absint( $product_data['id'] ) );
    739744                        if ( ! $wc_product ) { return $card_html; }
    … …  
    777782                        return $card_html;
    778783                };
     784                $render_requested_slider = static function ( $card_html, $product_data, $template_number, $post_data ) {
     785                        if ( 'yes' !== ( $post_data['gallery_slider'] ?? 'no' ) || ! class_exists( 'FilterPlusPro' ) || ! function_exists( 'filterplus_pro_gallery_slider_markup' ) || ! in_array( (int) $template_number, array( 4, 5, 6, 7, 8 ), true ) ) {
     786                                return $card_html;
     787                        }
     788                        $slider = filterplus_pro_gallery_slider_markup( $product_data );
     789                        $primary_image = isset( $product_data['post_image'] ) ? (string) $product_data['post_image'] : '';
     790                        $position = '' !== $primary_image ? strpos( $card_html, $primary_image ) : false;
     791                        if ( '' === $slider || false === $position ) {
     792                                return $card_html;
     793                        }
     794                        return substr( $card_html, 0, $position ) . $slider . substr( $card_html, $position + strlen( $primary_image ) );
     795                };
    779796                $html = array(
    780797                        'grid' => '',
    … …  
    807824
    808825                        // Get template variables from POST data
    809                         $post_data = filter_input_array( INPUT_POST, FILTER_SANITIZE_SPECIAL_CHARS );
     826                        $post_data = is_array( $render_settings ) ? $render_settings : filter_input_array( INPUT_POST, FILTER_SANITIZE_SPECIAL_CHARS );
     827                        $post_data = is_array( $post_data ) ? $post_data : array();
    810828
    811829                        // Render each product using the new functions
    … …  
    835853                                        }
    836854                                        $rendered_card = ob_get_clean();
     855                                        $rendered_card = $render_requested_slider( $rendered_card, $product, $template, $post_data );
    837856                                        $html['grid'] .= $filter_type === 'product' ? $render_selected_attributes( $rendered_card, $product, $post_data ) : $rendered_card;
    838857                                } elseif (function_exists('filterplus_render_grid_product')) {
    … …  
    848867                                                        isset($post_data['rollover_image']) && 'yes' === $post_data['rollover_image'] && ( ! isset($post_data['gallery_slider']) || 'yes' !== $post_data['gallery_slider'] ) ? 'yes' : 'no',
    849868                                                        isset($post_data['rollover_image_number']) ? max(1, min(5, absint($post_data['rollover_image_number']))) : 1,
    850                                                         isset($post_data['rollover_effect']) ? sanitize_key($post_data['rollover_effect']) : 'fade'
     869                                                        isset($post_data['rollover_effect']) ? sanitize_key($post_data['rollover_effect']) : 'fade',
     870                                                        isset($post_data['gallery_slider']) && 'yes' === $post_data['gallery_slider'] ? 'yes' : 'no'
    851871                                                );
    852872                                        } else {
    … …  
    858878                                        }
    859879                                        $rendered_card = ob_get_clean();
     880                                        $rendered_card = $render_requested_slider( $rendered_card, $product, $template, $post_data );
    860881                                        $html['grid'] .= $filter_type === 'product' ? $render_selected_attributes( $rendered_card, $product, $post_data ) : $rendered_card;
    861882                                }
  • filter-plus/trunk/core/widgets/elementor/manifest.php

    r3315642 r3801351  
    1616        add_action( 'elementor/elements/categories_registered', [$this, 'add_elementor_widget_categories'] );
    1717        add_action( 'elementor/widgets/register', [$this, 'register_widgets'] );
     18        add_action( 'elementor/editor/after_enqueue_scripts', [$this, 'editor_scripts'] );
     19    }
     20
     21    /**
     22     * Editor-only helpers (Rollover Image / Gallery Slider switch each other off).
     23     */
     24    public function editor_scripts() {
     25        wp_enqueue_script(
     26            'filter-plus-elementor-editor',
     27            \FilterPlus::assets_url() . 'js/elementor-editor.js',
     28            array( 'jquery' ),
     29            \FilterPlus::asset_version( 'js/elementor-editor.js' ),
     30            true
     31        );
    1832    }
    1933
  • filter-plus/trunk/core/widgets/elementor/woo-filter/woo-filter.php

    r3798363 r3801351  
    637637                        )
    638638                );
    639         $this->add_control( 'rollover_image', array( 'label' => esc_html__( 'Rollover Image', 'filter-plus' ) . ( class_exists( 'FilterPlusPro' ) ? '' : ' (Pro)' ), 'type' => Controls_Manager::SWITCHER, 'return_value' => 'yes', 'default' => '', 'disabled' => ! class_exists( 'FilterPlusPro' ), 'condition' => array( 'gallery_slider' => '' ), 'description' => class_exists( 'FilterPlusPro' ) ? esc_html__( 'Choose one image mode: Rollover Image or Gallery Slider. They cannot be enabled at the same time.', 'filter-plus' ) : esc_html__( 'Upgrade to Pro to use this feature.', 'filter-plus' ) ) );
     639        $this->add_control( 'rollover_image', array( 'label' => esc_html__( 'Rollover Image', 'filter-plus' ) . ( class_exists( 'FilterPlusPro' ) ? '' : ' (Pro)' ), 'type' => Controls_Manager::SWITCHER, 'return_value' => 'yes', 'default' => '', 'disabled' => ! class_exists( 'FilterPlusPro' ), 'description' => class_exists( 'FilterPlusPro' ) ? esc_html__( 'Choose one image mode: Rollover Image or Gallery Slider. They cannot be enabled at the same time.', 'filter-plus' ) : esc_html__( 'Upgrade to Pro to use this feature.', 'filter-plus' ) ) );
    640640        $this->add_control( 'rollover_image_number', array( 'label' => esc_html__( 'Hover Gallery Image (1-5)', 'filter-plus' ) . ( class_exists( 'FilterPlusPro' ) ? '' : ' (Pro)' ), 'type' => Controls_Manager::NUMBER, 'min' => 1, 'max' => 5, 'default' => 1, 'disabled' => ! class_exists( 'FilterPlusPro' ), 'condition' => array( 'rollover_image' => 'yes', 'gallery_slider' => '' ), 'description' => class_exists( 'FilterPlusPro' ) ? esc_html__( 'Choose the gallery image shown on hover; the last available image is used when needed.', 'filter-plus' ) : esc_html__( 'Upgrade to Pro to use this feature.', 'filter-plus' ) ) );
    641641        $this->add_control( 'rollover_effect', array( 'label' => esc_html__( 'Rollover Transition', 'filter-plus' ) . ( class_exists( 'FilterPlusPro' ) ? '' : ' (Pro)' ), 'type' => Controls_Manager::SELECT, 'options' => array( 'fade' => 'Fade', 'zoom' => 'Fade + Zoom', 'none' => 'None' ), 'default' => 'fade', 'disabled' => ! class_exists( 'FilterPlusPro' ), 'condition' => array( 'rollover_image' => 'yes', 'gallery_slider' => '' ), 'description' => class_exists( 'FilterPlusPro' ) ? '' : esc_html__( 'Upgrade to Pro to use this feature.', 'filter-plus' ) ) );
    642         $this->add_control( 'gallery_slider', array( 'label' => esc_html__( 'Gallery Slider', 'filter-plus' ) . ( class_exists( 'FilterPlusPro' ) ? '' : ' (Pro)' ), 'type' => Controls_Manager::SWITCHER, 'return_value' => 'yes', 'default' => '', 'disabled' => ! class_exists( 'FilterPlusPro' ), 'condition' => array( 'rollover_image' => '' ), 'description' => class_exists( 'FilterPlusPro' ) ? esc_html__( 'Choose one image mode: Rollover Image or Gallery Slider. They cannot be enabled at the same time.', 'filter-plus' ) : esc_html__( 'Upgrade to Pro to use this feature.', 'filter-plus' ) ) );
     642        $this->add_control( 'gallery_slider', array( 'label' => esc_html__( 'Gallery Slider', 'filter-plus' ) . ( class_exists( 'FilterPlusPro' ) ? '' : ' (Pro)' ), 'type' => Controls_Manager::SWITCHER, 'return_value' => 'yes', 'default' => '', 'disabled' => ! class_exists( 'FilterPlusPro' ), 'description' => class_exists( 'FilterPlusPro' ) ? esc_html__( 'Choose one image mode: Rollover Image or Gallery Slider. They cannot be enabled at the same time.', 'filter-plus' ) : esc_html__( 'Upgrade to Pro to use this feature.', 'filter-plus' ) ) );
     643                $this->add_control(
     644                        'show_product_attributes',
     645                        array(
     646                                'label'        => esc_html__( 'Show Product Attributes', 'filter-plus' ) . ( class_exists( 'FilterPlusPro' ) ? '' : ' (Pro)' ),
     647                                'type'         => Controls_Manager::SWITCHER,
     648                                'return_value' => 'yes',
     649                                'default'      => '',
     650                                'disabled'     => ! class_exists( 'FilterPlusPro' ),
     651                                'description'  => class_exists( 'FilterPlusPro' ) ? esc_html__( 'Show the selected attributes on each product card.', 'filter-plus' ) : esc_html__( 'Upgrade to Pro to use this feature.', 'filter-plus' ),
     652                        )
     653                );
     654                $this->add_control(
     655                        'product_attributes',
     656                        array(
     657                                'label'       => esc_html__( 'Attribute List', 'filter-plus' ) . ( class_exists( 'FilterPlusPro' ) ? '' : ' (Pro)' ),
     658                                'type'        => Controls_Manager::SELECT2,
     659                                'options'     => Helper::woo_attribute_list( 'assoc' ),
     660                                'multiple'    => true,
     661                                'label_block' => true,
     662                                'disabled'    => ! class_exists( 'FilterPlusPro' ),
     663                                'condition'   => array( 'show_product_attributes' => 'yes' ),
     664                                'description' => empty( Helper::woo_attribute_list( 'assoc' ) ) ? esc_html__( 'No attributes found. Add them under Products > Attributes.', 'filter-plus' ) : '',
     665                        )
     666                );
    643667                $this->add_control('hide_prod_title',
    644668                        array(
    … …  
    20912115                        echo '<div class="grid-sizer"></div><div class="gutter-sizer"></div>';
    20922116                }
    2093                 foreach ( $products as $product ) {
    2094                         call_user_func(
    2095                                 $render_fn,
    2096                                 $product,
    2097                                 $hide_prod_add_cart,
    2098                                 $hide_prod_title,
    2099                                 $hide_prod_desc,
    2100                                 $hide_prod_rating,
    2101                                 $hide_prod_price
    2102                         );
    2103                 }
     2117                // Same renderer as the frontend AJAX and the Gutenberg preview, so
     2118                // rollover, gallery slider and product attributes show here too.
     2119                $rendered = \FilterPlus\Core\Frontend\SearchFilter\Actions::instance()->render_products_html(
     2120                        $products,
     2121                        'product',
     2122                        $template,
     2123                        array(
     2124                                'hide_prod_add_cart'      => $hide_prod_add_cart,
     2125                                'hide_prod_title'         => $hide_prod_title,
     2126                                'hide_prod_desc'          => $hide_prod_desc,
     2127                                'hide_prod_rating'        => $hide_prod_rating,
     2128                                'hide_prod_price'         => $hide_prod_price,
     2129                                'rollover_image'          => ! empty( $data['rollover_image'] ) ? $data['rollover_image'] : 'no',
     2130                                'rollover_image_number'   => ! empty( $data['rollover_image_number'] ) ? $data['rollover_image_number'] : 1,
     2131                                'rollover_effect'         => ! empty( $data['rollover_effect'] ) ? $data['rollover_effect'] : 'fade',
     2132                                'gallery_slider'          => ! empty( $data['gallery_slider'] ) ? $data['gallery_slider'] : 'no',
     2133                                'show_product_attributes' => ! empty( $data['show_product_attributes'] ) ? $data['show_product_attributes'] : 'no',
     2134                                'product_attributes'      => ! empty( $data['product_attributes'] ) ? $data['product_attributes'] : '',
     2135                        )
     2136                );
     2137                echo $rendered['grid']; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped -- template output
    21042138                return ob_get_clean();
    21052139        }
  • filter-plus/trunk/core/widgets/gutenburg-block/blocks/woo-filter.php

    r3798363 r3801351  
    216216                'rollover_effect' => array( 'type' => 'string', 'default' => 'fade' ),
    217217                'gallery_slider' => array( 'type' => 'boolean', 'default' => false ),
     218                'show_product_attributes' => array( 'type' => 'boolean', 'default' => false ),
     219                'product_attributes' => array( 'type' => 'array', 'default' => array() ),
    218220                'hide_prod_rating' => array(
    219221                    'type' => 'boolean',
    … …  
    282284function product_filter_callback( $settings ) {
    283285    // Convert arrays to comma-separated strings (use is_array only — !empty([]) is false for empty arrays)
    284     foreach ( ['categories', 'exclude_categories', 'tags', 'attributes', 'brands', 'filter_order'] as $field ) {
     286    foreach ( ['categories', 'exclude_categories', 'tags', 'attributes', 'brands', 'filter_order', 'product_attributes'] as $field ) {
    285287        if ( isset( $settings[$field] ) && is_array( $settings[$field] ) ) {
    286288            $settings[$field] = implode( ',', $settings[$field] );
    … …  
    294296        'show_reviews', 'stock', 'on_sale', 'hide_prod_title', 'hide_prod_desc',
    295297        'hide_prod_price', 'hide_prod_add_cart', 'hide_prod_rating', 'sorting',
    296         'rollover_image', 'gallery_slider',
     298        'rollover_image', 'gallery_slider', 'show_product_attributes',
    297299        'product_categories', 'show_sale_badge', 'product_tags', 'apply_button_mode',
    298300        'show_brands', 'hide_empty_brand', 'brand_count'
    … …  
    305307    }
    306308
    307     // Masonry is initialized by search-filter.js, which does not run inside the
    308     // server-rendered block preview. Render that preview as a regular grid so
    309     // every product template keeps its full column width in Gutenberg.
     309    // Masonry is initialized by search-filter.js, which does not run in the
     310    // server-rendered editor preview. Use the standard grid in both the shell
     311    // and the pre-rendered cards so Gutenberg does not create a broken layout.
    310312    $render_settings = $settings;
    311313    if ( defined( 'REST_REQUEST' ) && REST_REQUEST ) {
    … …  
    319321    if ( defined( 'REST_REQUEST' ) && REST_REQUEST ) {
    320322        $rendered = [ 'grid' => '', 'list' => '' ];
     323        $preview  = [];
    321324        $template = ! empty( $settings['template'] ) ? $settings['template'] : '1';
    322325
    … …  
    326329            $preview = $actions->get_products( [
    327330                'filter_type'        => 'product',
    328                 'limit'              => 6,
     331                'limit'              => ! empty( $settings['no_of_items'] ) ? absint( $settings['no_of_items'] ) : 9,
    329332                'offset'             => 1,
    330333                'template'           => $template,
    331334                'masonry_style'      => 'no',
    332                 'product_categories' => 'yes',
    333                 'product_tags'       => 'yes',
    334                 'show_sale_badge'    => 'yes',
    335                 'post_author'        => 'yes',
     335                'product_categories' => ! empty( $settings['product_categories'] ) ? 'yes' : 'no',
     336                'product_tags'       => ! empty( $settings['product_tags'] ) ? 'yes' : 'no',
     337                'show_sale_badge'    => ! empty( $settings['show_sale_badge'] ) ? 'yes' : 'no',
    336338                'order_by'           => '',
    337339                'cat_id'             => '',
    … …  
    346348                'cf_list'            => [],
    347349                'author'             => '',
    348                 'pagination_style'   => 'numbers',
     350                'pagination_style'   => ! empty( $settings['pagination_style'] ) ? sanitize_key( $settings['pagination_style'] ) : 'numbers',
    349351                'taxonomy'           => 'product_cat',
    350352                'exclude_cat_id'     => '',
    … …  
    353355                'image_width'        => ! empty( $settings['image_width'] )  ? $settings['image_width']  : '',
    354356                'image_height'       => ! empty( $settings['image_height'] ) ? $settings['image_height'] : '',
     357                'hide_prod_title'    => ! empty( $settings['hide_prod_title'] ) ? 'yes' : 'no',
     358                'hide_prod_desc'     => ! empty( $settings['hide_prod_desc'] ) ? 'yes' : 'no',
     359                'hide_prod_price'    => ! empty( $settings['hide_prod_price'] ) ? 'yes' : 'no',
     360                'hide_prod_add_cart' => ! empty( $settings['hide_prod_add_cart'] ) ? 'yes' : 'no',
     361                'hide_prod_rating'   => ! empty( $settings['hide_prod_rating'] ) ? 'yes' : 'no',
     362                'rollover_image'     => ! empty( $settings['rollover_image'] ) ? 'yes' : 'no',
     363                'rollover_image_number' => isset( $settings['rollover_image_number'] ) ? max( 1, min( 5, absint( $settings['rollover_image_number'] ) ) ) : 1,
     364                'rollover_effect'    => isset( $settings['rollover_effect'] ) ? sanitize_key( $settings['rollover_effect'] ) : 'fade',
     365                'gallery_slider'     => ! empty( $settings['gallery_slider'] ) ? 'yes' : 'no',
     366                'show_product_attributes' => ! empty( $settings['show_product_attributes'] ) ? 'yes' : 'no',
     367                'product_attributes' => isset( $settings['product_attributes'] ) ? $settings['product_attributes'] : '',
    355368            ] );
    356369
    357             // Try selected template first; fall back to template 1 if Pro template not renderable
    358             $rendered = $actions->render_products_html( $preview['products'], 'product', $template );
    359             if ( empty( $rendered['grid'] ) && $template !== '1' ) {
    360                 $rendered = $actions->render_products_html( $preview['products'], 'product', '1' );
    361             }
     370            // Use the selected template exactly as the front end does. A
     371            // template 1 fallback makes the editor misleading for Pro layouts.
     372            $preview_render_settings = array(
     373                'hide_prod_add_cart' => ! empty( $settings['hide_prod_add_cart'] ) ? 'yes' : 'no',
     374                'hide_prod_title' => ! empty( $settings['hide_prod_title'] ) ? 'yes' : 'no',
     375                'hide_prod_desc' => ! empty( $settings['hide_prod_desc'] ) ? 'yes' : 'no',
     376                'hide_prod_rating' => ! empty( $settings['hide_prod_rating'] ) ? 'yes' : 'no',
     377                'hide_prod_price' => ! empty( $settings['hide_prod_price'] ) ? 'yes' : 'no',
     378                'rollover_image' => ! empty( $settings['rollover_image'] ) ? 'yes' : 'no',
     379                'rollover_image_number' => isset( $settings['rollover_image_number'] ) ? max( 1, min( 5, absint( $settings['rollover_image_number'] ) ) ) : 1,
     380                'rollover_effect' => isset( $settings['rollover_effect'] ) ? sanitize_key( $settings['rollover_effect'] ) : 'fade',
     381                'gallery_slider' => ! empty( $settings['gallery_slider'] ) ? 'yes' : 'no',
     382                'show_product_attributes' => ! empty( $settings['show_product_attributes'] ) ? 'yes' : 'no',
     383                'product_attributes' => isset( $settings['product_attributes'] ) ? $settings['product_attributes'] : '',
     384            );
     385            $rendered = $actions->render_products_html( $preview['products'], 'product', $template, $preview_render_settings );
    362386        } catch ( \Throwable $e ) { // phpcs:ignore -- silently skip on any error
    363387        }
    … …  
    365389
    366390        if ( ! empty( $rendered['grid'] ) ) {
    367             $columns = ! empty( $settings['grid_columns_desktop'] ) ? max( 1, absint( $settings['grid_columns_desktop'] ) ) : 3;
    368             $grid_style = ' style="display:grid;grid-template-columns:repeat(' . $columns . ',minmax(0,1fr));gap:16px;"';
    369391            $html = preg_replace(
    370392                '/(<div[^>]*class="prods-grid-view[^"]*")([^>]*>)/',
    371                 '$1 data-editor-products="1"' . $grid_style . '$2' . $rendered['grid'],
     393                '$1 data-editor-products="1"$2' . $rendered['grid'],
    372394                $html,
    373395                1
    374396            );
     397        }
     398        // search-filter.js fills the result count and pagination on the
     399        // frontend. Fill them here so the editor shows the same header/footer.
     400        if ( ! empty( $preview ) && isset( $preview['total'] ) ) {
     401            $shown = isset( $preview['products'] ) ? count( $preview['products'] ) : 0;
     402            $html  = preg_replace( '/(<span class="total"[^>]*>)[^<]*(<\/span>)/', '${1}' . absint( $preview['total'] ) . '${2}', $html );
     403            $html  = preg_replace( '/(<span class="pages"[^>]*>)[^<]*(<\/span>)/', '${1}' . absint( $shown ) . '${2}', $html );
     404            if ( ! empty( $preview['pagination_markup'] ) ) {
     405                $html = preg_replace(
     406                    '/(<div class="naviation[^"]*"[^>]*>)/',
     407                    '$1' . str_replace( array( '\\', '$' ), array( '\\\\', '\\$' ), $preview['pagination_markup'] ),
     408                    $html,
     409                    1
     410                );
     411            }
    375412        }
    376413        if ( ! empty( $rendered['list'] ) ) {
  • filter-plus/trunk/core/widgets/gutenburg-block/init.php

    r3798363 r3801351  
    9494    wp_enqueue_style( 'filter-plus-public-css' );
    9595    wp_enqueue_style( 'filter-plus-swiper-css' );
    96     if ( class_exists( 'FilterPlusPro' ) ) {
    97         wp_enqueue_style(
    98             'filter-plus-pro-public-css',
    99             \FilterPlusPro::assets_url() . 'css/public.css',
    100             array( 'filter-plus-public-css' ),
    101             \FilterPlusPro::asset_version( 'css/public.css' )
    102         );
    103     }
    10496
    10597    $default_css = \FilterPlus\Core\Frontend\Shortcodes::instance()->custom_css( '1', 'content-filter', array( 'masonry_style' => 'no' ) );
    10698    if ( ! empty( $default_css ) ) {
    10799        wp_add_inline_style( 'filter-plus-public-css', $default_css );
     100    }
     101} );
     102
     103// The post editor canvas is an iframe. Styles added on
     104// enqueue_block_editor_assets stay in the outer admin document, so Pro
     105// template styles (templates 3-8) never reached the preview. Styles added on
     106// enqueue_block_assets are copied into the iframe. Admin only: the frontend
     107// already loads the Pro stylesheet through its own enqueue class.
     108add_action( 'enqueue_block_assets', function() {
     109    if ( ! is_admin() || ! class_exists( 'FilterPlusPro' ) ) {
     110        return;
     111    }
     112    wp_enqueue_style(
     113        'filter-plus-pro-public-css',
     114        \FilterPlusPro::assets_url() . 'css/public.css',
     115        array( 'filter-plus-public-css' ),
     116        \FilterPlusPro::asset_version( 'css/public.css' )
     117    );
     118    // Cards render a quick-view trigger when the module is on; style it too.
     119    if ( class_exists( '\FilterPlusPro\Core\Frontend\QuickView' ) && \FilterPlusPro\Core\Frontend\QuickView::is_enabled() ) {
     120        wp_enqueue_style(
     121            'filter-plus-pro-quick-view',
     122            \FilterPlusPro::assets_url() . 'css/quick-view.css',
     123            array( 'filter-plus-pro-public-css' ),
     124            \FilterPlusPro::asset_version( 'css/quick-view.css' )
     125        );
    108126    }
    109127} );
  • filter-plus/trunk/filter-plus.php

    r3799880 r3801351  
    55 * Plugin URI:        https://wpbens.com/filter-plus/
    66 * Description:       Advanced Product Filter plugin that enable filter anything features like filter by by Ratings, Tags, Price Range on website. It allows users to filter anything based on different taxonomies.
    7  * Version:           1.1.44
     7 * Version:           1.1.45
    88 * Requires at least: 5.8
    99 * Requires PHP:      7.4
  • filter-plus/trunk/languages/filter-plus.pot

    r3786989 r3801351  
    33msgid ""
    44msgstr ""
    5 "Project-Id-Version: Filter Plus – WordPress & WooCommerce AJAX Filter Plugin 1.1.40\n"
     5"Project-Id-Version: Filter Plus – WordPress & WooCommerce AJAX Filter Plugin 1.1.45\n"
    66"Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/filter-plus\n"
    77"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
    … …  
    1010"Content-Type: text/plain; charset=UTF-8\n"
    1111"Content-Transfer-Encoding: 8bit\n"
    12 "POT-Creation-Date: 2026-11-06T02:15:18+00:00\n"
     12"POT-Creation-Date: 2026-11-14T02:17:20+00:00\n"
    1313"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
    1414"X-Generator: WP-CLI 2.12.0\n"
    … …  
    4141
    4242#: base/data-factory.php:28
    43 #: base/data-factory.php:109
    44 #: base/data-factory.php:128
    45 #: base/data-factory.php:371
     43#: base/data-factory.php:117
     44#: base/data-factory.php:136
     45#: base/data-factory.php:404
    4646#: core/admin/settings/tab-content/short-codes.php:57
    4747#: core/admin/wp-filter.php:52
    … …  
    5656
    5757#: base/data-factory.php:35
    58 #: base/data-factory.php:131
    59 #: base/data-factory.php:172
    60 #: base/data-factory.php:385
    61 #: base/data-factory.php:399
    62 #: base/data-factory.php:490
     58#: base/data-factory.php:139
     59#: base/data-factory.php:180
     60#: base/data-factory.php:418
     61#: base/data-factory.php:432
     62#: base/data-factory.php:523
    6363#: core/widgets/bricks/components/wp-filter.php:180
    6464#: core/widgets/elementor/wp-filter/wp-filter.php:189
    … …  
    7777
    7878#: base/data-factory.php:40
    79 #: base/data-factory.php:136
    80 #: base/data-factory.php:228
     79#: base/data-factory.php:144
     80#: base/data-factory.php:253
    8181#: core/admin/settings/tab-content/short-codes.php:32
    8282#: core/admin/wp-filter.php:27
    … …  
    8989
    9090#: base/data-factory.php:41
    91 #: base/data-factory.php:137
    92 #: base/data-factory.php:229
     91#: base/data-factory.php:145
     92#: base/data-factory.php:254
    9393#: core/admin/settings/tab-content/short-codes.php:38
    9494#: core/admin/wp-filter.php:33
    95 #: core/frontend/shortcodes.php:130
     95#: core/frontend/shortcodes.php:137
    9696#: core/widgets/bricks/components/woo-filter.php:79
    9797#: core/widgets/elementor/woo-filter/woo-filter.php:100
    … …  
    102102#: templates/woo-filter/parts/category/categories-checkbox.php:68
    103103#: templates/woo-filter/parts/category/categories-image.php:87
    104 #: templates/woo-filter/parts/category/categories-list.php:71
     104#: templates/woo-filter/parts/category/categories-list.php:75
    105105#: templates/woo-filter/parts/category/categories-radio.php:69
    106106#: templates/woo-filter/parts/category/categories-select.php:50
    107107#: templates/woo-filter/parts/category/categories-text.php:52
    108108#: templates/woo-filter/parts/filter-buttons.php:15
    109 #: templates/woo-filter/parts/filter-color.php:56
     109#: templates/woo-filter/parts/filter-color.php:58
    110110#: templates/woo-filter/parts/filter-layout-attr-grid.php:33
    111111#: templates/woo-filter/parts/filter-layout-grid.php:34
    … …  
    130130
    131131#: base/data-factory.php:46
    132 #: base/data-factory.php:182
     132#: base/data-factory.php:190
    133133#: build/index.js:1
    134134msgid "Colors"
    … …  
    136136
    137137#: base/data-factory.php:48
    138 #: base/data-factory.php:190
     138#: base/data-factory.php:198
    139139#: build/index.js:1
    140140msgid "Size"
    … …  
    142142
    143143#: base/data-factory.php:50
    144 #: base/data-factory.php:142
    145 #: base/data-factory.php:181
    146 #: base/data-factory.php:387
    147 #: base/data-factory.php:404
     144#: base/data-factory.php:150
     145#: base/data-factory.php:189
     146#: base/data-factory.php:420
     147#: base/data-factory.php:437
    148148#: core/widgets/bricks/components/woo-filter.php:335
    149149#: core/widgets/bricks/components/wp-filter.php:238
    … …  
    156156
    157157#: base/data-factory.php:55
    158 #: base/data-factory.php:196
    159 #: core/widgets/elementor/woo-filter/woo-filter.php:1108
     158#: base/data-factory.php:204
     159#: core/widgets/elementor/woo-filter/woo-filter.php:1156
    160160msgid "Review"
    161161msgstr ""
    162162
    163163#: base/data-factory.php:58
    164 #: base/data-factory.php:198
     164#: base/data-factory.php:206
    165165#: templates/woo-filter/parts/price-range.php:10
    166166#: templates/woo-filter/template-1/left-side/price-range.php:10
    … …  
    168168msgstr ""
    169169
    170 #: base/data-factory.php:60
    171 #: base/data-factory.php:202
     170#: base/data-factory.php:61
     171#: base/data-factory.php:212
    172172msgid "Sale"
    173173msgstr ""
    174174
    175 #: base/data-factory.php:62
    176 #: base/data-factory.php:200
     175#: base/data-factory.php:64
     176#: base/data-factory.php:209
    177177#: templates/woo-filter/template-1/stock.php:5
    178178#: build/index.js:1
    … …  
    180180msgstr ""
    181181
    182 #: base/data-factory.php:74
    183 #: base/data-factory.php:207
    184 #: core/admin/settings/tab-content/short-codes.php:401
     182#: base/data-factory.php:76
     183#: base/data-factory.php:217
     184#: core/admin/settings/tab-content/short-codes.php:409
    185185#: core/frontend/search-filter/actions.php:591
    186 #: core/widgets/bricks/components/woo-filter.php:619
    187 #: core/widgets/elementor/woo-filter/woo-filter.php:663
     186#: core/widgets/bricks/components/woo-filter.php:639
     187#: core/widgets/elementor/woo-filter/woo-filter.php:711
    188188#: build/index.js:1
    189189msgid "Add to cart"
    190190msgstr ""
    191191
    192 #: base/data-factory.php:90
    193 #: base/data-factory.php:233
    194 #: base/data-factory.php:560
     192#: base/data-factory.php:98
     193#: base/data-factory.php:258
     194#: base/data-factory.php:593
    195195#: core/admin/settings/tab-content/short-codes.php:163
    196196#: core/widgets/bricks/components/woo-filter.php:376
    … …  
    200200msgstr ""
    201201
    202 #: base/data-factory.php:145
    203 #: base/data-factory.php:390
    204 #: base/data-factory.php:407
     202#: base/data-factory.php:153
     203#: base/data-factory.php:423
     204#: base/data-factory.php:440
    205205#: core/widgets/gutenburg-block/blocks/wp-filter.php:67
    206206#: templates/wp-filter/template-1/template-1.php:67
    … …  
    209209msgstr ""
    210210
    211 #: base/data-factory.php:150
    212 #: base/data-factory.php:393
    213 #: base/data-factory.php:410
     211#: base/data-factory.php:158
     212#: base/data-factory.php:426
     213#: base/data-factory.php:443
    214214#: core/admin/filter-options/add-options.php:28
    215215#: core/admin/settings/action.php:62
    … …  
    220220msgstr ""
    221221
    222 #: base/data-factory.php:458
    223 #: base/data-factory.php:621
     222#: base/data-factory.php:491
     223#: base/data-factory.php:654
     224#: base/data-factory.php:714
    224225#: base/input-fields.php:136
    225226#: base/input-fields.php:161
    226227#: core/widgets/elementor/wp-filter/wp-filter.php:71
    227 #: utils/helper.php:1182
     228#: utils/helper.php:1186
     229#: build/index.js:1
    228230msgid "Pro"
    229231msgstr ""
    230232
    231 #: base/data-factory.php:462
     233#: base/data-factory.php:495
    232234#: build/index.js:1
    233235msgid "List"
    234236msgstr ""
    235237
    236 #: base/data-factory.php:463
    237 #: base/data-factory.php:536
     238#: base/data-factory.php:496
     239#: base/data-factory.php:569
    238240#: core/admin/filter-options/add-options.php:51
    239241#: build/index.js:1
    … …  
    241243msgstr ""
    242244
    243 #: base/data-factory.php:464
     245#: base/data-factory.php:497
    244246#: build/index.js:1
    245247msgid "Dropdown"
    246248msgstr ""
    247249
    248 #: base/data-factory.php:465
    249 #: base/data-factory.php:537
     250#: base/data-factory.php:498
     251#: base/data-factory.php:570
    250252#: core/admin/filter-options/add-options.php:52
    251253#: build/index.js:1
    … …  
    253255msgstr ""
    254256
    255 #: base/data-factory.php:466
    256 #: base/data-factory.php:538
     257#: base/data-factory.php:499
     258#: base/data-factory.php:571
    257259#: build/index.js:1
    258260msgid "Image"
    259261msgstr ""
    260262
    261 #: base/data-factory.php:467
     263#: base/data-factory.php:500
    262264#: build/index.js:1
    263265msgid "Text"
    264266msgstr ""
    265267
    266 #: base/data-factory.php:574
     268#: base/data-factory.php:607
    267269msgid "Brand filter: no brands found. Add brands under Products > Brands."
    268270msgstr ""
    269271
    270 #: base/data-factory.php:575
     272#: base/data-factory.php:608
    271273msgid "Brand filter: the selected brands have no products, so the section is hidden. Assign brands to products or turn off \"Hide Empty Brands\"."
    272274msgstr ""
    273275
    274276#. translators: %d: template number
    275 #: base/data-factory.php:627
     277#: base/data-factory.php:660
    276278#: base/input-fields.php:138
    277 #: utils/helper.php:1188
    278 #: utils/helper.php:1371
     279#: utils/helper.php:1192
     280#: utils/helper.php:1375
    279281#, php-format
    280282msgid "Template %d"
    281283msgstr ""
    282284
     285#: base/data-factory.php:716
     286msgid "Layout 1"
     287msgstr ""
     288
     289#: base/data-factory.php:717
     290msgid "Layout 2"
     291msgstr ""
     292
     293#: base/data-factory.php:718
     294msgid "Layout 3"
     295msgstr ""
     296
    283297#: base/enqueue.php:188
    284298msgid "with"
    … …  
    290304
    291305#: base/enqueue.php:221
    292 #: core/widgets/elementor/woo-filter/woo-filter.php:1053
     306#: core/widgets/elementor/woo-filter/woo-filter.php:1101
    293307#: build/index.js:1
    294308msgid "Price"
    … …  
    297311#: base/enqueue.php:222
    298312#: templates/woo-filter/template-1/rating.php:17
     313#: templates/woo-filter/template-2/template-2.php:70
    299314msgid "Rating"
    300315msgstr ""
    301316
    302317#: base/enqueue.php:223
    303 #: core/frontend/shortcodes.php:130
     318#: core/frontend/shortcodes.php:137
    304319#: build/index.js:1
    305320msgid "Search"
    … …  
    315330#: core/admin/header.php:53
    316331#: core/widgets/elementor/woo-filter/woo-filter.php:438
    317 #: core/widgets/elementor/woo-filter/woo-filter.php:737
    318 #: core/widgets/elementor/woo-filter/woo-filter.php:847
    319 #: core/widgets/elementor/woo-filter/woo-filter.php:976
    320 #: core/widgets/elementor/woo-filter/woo-filter.php:1824
    321 #: core/widgets/elementor/woo-filter/woo-filter.php:1888
     332#: core/widgets/elementor/woo-filter/woo-filter.php:785
     333#: core/widgets/elementor/woo-filter/woo-filter.php:895
     334#: core/widgets/elementor/woo-filter/woo-filter.php:1024
     335#: core/widgets/elementor/woo-filter/woo-filter.php:1872
     336#: core/widgets/elementor/woo-filter/woo-filter.php:1936
    322337#: core/widgets/elementor/wp-filter/wp-filter.php:420
    323338#: core/widgets/elementor/wp-filter/wp-filter.php:530
    … …  
    420435
    421436#: base/sidebar-sections.php:72
    422 #: core/admin/settings/tab-content/short-codes.php:336
     437#: core/admin/settings/tab-content/short-codes.php:340
    423438msgid "On Sale Filter"
    424439msgstr ""
    … …  
    585600msgstr ""
    586601
    587 #: core/admin/filter-set.php:5
    588 #: core/admin/filter-set.php:21
     602#: core/admin/filter-set.php:7
     603#: core/admin/filter-set.php:29
    589604#: core/admin/filter-sets/helper.php:36
    590605#: core/admin/header.php:22
    … …  
    594609msgstr ""
    595610
    596 #: core/admin/filter-set.php:6
    597 #: core/admin/filter-set.php:39
     611#: core/admin/filter-set.php:10
     612#: core/admin/filter-set.php:47
    598613msgid "Add New Filter Set"
    599614msgstr ""
    600615
    601 #: core/admin/filter-set.php:15
     616#: core/admin/filter-set.php:13
     617msgid "Save and reuse product filter configurations with a shortcode."
     618msgstr ""
     619
     620#: core/admin/filter-set.php:23
    602621msgid "Name"
    603622msgstr ""
    604623
    605 #: core/admin/filter-set.php:16
     624#: core/admin/filter-set.php:24
    606625msgid "Shortcode"
    607626msgstr ""
    608627
    609 #: core/admin/filter-set.php:20
     628#: core/admin/filter-set.php:28
    610629msgid "Filter Set"
    611630msgstr ""
    612631
    613 #: core/admin/filter-set.php:36
     632#: core/admin/filter-set.php:44
    614633msgid "Back to Filter Sets"
    615634msgstr ""
    616635
    617 #: core/admin/filter-set.php:37
     636#: core/admin/filter-set.php:45
    618637msgid "Back"
    619638msgstr ""
    620639
    621 #: core/admin/filter-set.php:43
     640#: core/admin/filter-set.php:51
    622641msgid "Enter Filter Set Name"
    623642msgstr ""
    624643
    625 #: core/admin/filter-set.php:44
     644#: core/admin/filter-set.php:52
    626645msgid "Save As Filter Set"
    627646msgstr ""
    628647
    629 #: core/admin/filter-set.php:49
     648#: core/admin/filter-set.php:57
    630649msgid "Live Preview"
    631650msgstr ""
    632651
    633 #: core/admin/filter-set.php:53
     652#: core/admin/filter-set.php:61
    634653msgid "Filter sidebar preview"
    635654msgstr ""
    636655
    637 #: core/admin/filter-set.php:75
     656#: core/admin/filter-set.php:83
    638657#: core/admin/overview.php:280
    639658#: core/widgets/bricks/components/woo-filter.php:19
    … …  
    642661msgstr ""
    643662
    644 #: core/admin/filter-set.php:80
     663#: core/admin/filter-set.php:88
    645664#: core/widgets/bricks/components/wp-filter.php:19
    646665msgid "Wordpress Filter"
    … …  
    691710#: core/admin/filter-sets/table.php:86
    692711msgid "Delete"
     712msgstr ""
     713
     714#: core/admin/filter-sets/table.php:98
     715#, php-format
     716msgid "Shortcode for %s"
     717msgstr ""
     718
     719#: core/admin/filter-sets/table.php:99
     720msgid "Copy shortcode"
    693721msgstr ""
    694722
    … …  
    11011129#: core/widgets/bricks/components/wp-filter.php:68
    11021130#: core/widgets/elementor/woo-filter/woo-filter.php:117
    1103 #: core/widgets/elementor/woo-filter/woo-filter.php:984
     1131#: core/widgets/elementor/woo-filter/woo-filter.php:1032
    11041132#: core/widgets/elementor/wp-filter/wp-filter.php:92
    11051133#: build/index.js:1
    … …  
    11121140
    11131141#: core/admin/settings/tab-content/seo.php:44
    1114 #: core/widgets/elementor/woo-filter/woo-filter.php:1029
     1142#: core/widgets/elementor/woo-filter/woo-filter.php:1077
    11151143msgid "Description"
    11161144msgstr ""
    … …  
    14351463
    14361464#: core/admin/settings/tab-content/short-codes.php:251
    1437 #: core/admin/settings/tab-content/short-codes.php:433
     1465#: core/admin/settings/tab-content/short-codes.php:465
    14381466msgid "Show Tags:"
    14391467msgstr ""
    … …  
    14601488
    14611489#: core/admin/settings/tab-content/short-codes.php:272
     1490#: core/admin/settings/tab-content/short-codes.php:448
    14621491msgid "Show Attributes:"
    14631492msgstr ""
    … …  
    14751504
    14761505#: core/admin/settings/tab-content/short-codes.php:283
     1506#: core/admin/settings/tab-content/short-codes.php:451
    14771507msgid "Attribute List:"
    14781508msgstr ""
    … …  
    15221552#: core/admin/settings/tab-content/short-codes.php:330
    15231553#: core/widgets/bricks/components/woo-filter.php:549
    1524 #: core/widgets/elementor/woo-filter/woo-filter.php:548
     1554#: core/widgets/elementor/woo-filter/woo-filter.php:558
    15251555#: build/index.js:1
    15261556msgid "Place Stock Label Here"
    15271557msgstr ""
    15281558
    1529 #: core/admin/settings/tab-content/short-codes.php:338
     1559#: core/admin/settings/tab-content/short-codes.php:333
     1560msgid "Stock Filter Layout:"
     1561msgstr ""
     1562
     1563#: core/admin/settings/tab-content/short-codes.php:342
    15301564msgid "Filter By On Sale:"
    15311565msgstr ""
    15321566
    1533 #: core/admin/settings/tab-content/short-codes.php:341
     1567#: core/admin/settings/tab-content/short-codes.php:345
    15341568msgid "On Sale Label:"
    15351569msgstr ""
    15361570
    1537 #: core/admin/settings/tab-content/short-codes.php:342
    1538 #: core/widgets/bricks/components/woo-filter.php:570
    1539 #: core/widgets/elementor/woo-filter/woo-filter.php:570
     1571#: core/admin/settings/tab-content/short-codes.php:346
     1572#: core/widgets/bricks/components/woo-filter.php:580
     1573#: core/widgets/elementor/woo-filter/woo-filter.php:590
    15401574#: build/index.js:1
    15411575msgid "Place On Sale Label Here"
    15421576msgstr ""
    15431577
    1544 #: core/admin/settings/tab-content/short-codes.php:353
     1578#: core/admin/settings/tab-content/short-codes.php:351
     1579msgid "On Sale Filter Layout:"
     1580msgstr ""
     1581
     1582#: core/admin/settings/tab-content/short-codes.php:361
    15451583msgid "Filter Result Products"
    15461584msgstr ""
    15471585
    1548 #: core/admin/settings/tab-content/short-codes.php:359
     1586#: core/admin/settings/tab-content/short-codes.php:367
    15491587msgid "Desktop"
    15501588msgstr ""
    15511589
    1552 #: core/admin/settings/tab-content/short-codes.php:360
     1590#: core/admin/settings/tab-content/short-codes.php:368
    15531591msgid "Tablet"
    15541592msgstr ""
    15551593
    1556 #: core/admin/settings/tab-content/short-codes.php:361
     1594#: core/admin/settings/tab-content/short-codes.php:369
    15571595msgid "Mobile"
    15581596msgstr ""
    15591597
    1560 #: core/admin/settings/tab-content/short-codes.php:365
     1598#: core/admin/settings/tab-content/short-codes.php:373
    15611599msgid "Grid Columns:"
    15621600msgstr ""
    15631601
    1564 #: core/admin/settings/tab-content/short-codes.php:380
     1602#: core/admin/settings/tab-content/short-codes.php:388
    15651603msgid "Show Title:"
    15661604msgstr ""
    15671605
    1568 #: core/admin/settings/tab-content/short-codes.php:385
     1606#: core/admin/settings/tab-content/short-codes.php:393
    15691607msgid "Show Description:"
    15701608msgstr ""
    15711609
    1572 #: core/admin/settings/tab-content/short-codes.php:390
     1610#: core/admin/settings/tab-content/short-codes.php:398
    15731611msgid "Show Price:"
    15741612msgstr ""
    15751613
    1576 #: core/admin/settings/tab-content/short-codes.php:395
     1614#: core/admin/settings/tab-content/short-codes.php:403
    15771615msgid "Show Add to Cart:"
    15781616msgstr ""
    15791617
    1580 #: core/admin/settings/tab-content/short-codes.php:400
     1618#: core/admin/settings/tab-content/short-codes.php:408
    15811619msgid "Add to Cart Text:"
    15821620msgstr ""
    15831621
    1584 #: core/admin/settings/tab-content/short-codes.php:405
     1622#: core/admin/settings/tab-content/short-codes.php:412
     1623msgid "Product Image Settings"
     1624msgstr ""
     1625
     1626#: core/admin/settings/tab-content/short-codes.php:414
    15851627msgid "Image Size:"
    15861628msgstr ""
    15871629
    1588 #: core/admin/settings/tab-content/short-codes.php:411
     1630#: core/admin/settings/tab-content/short-codes.php:420
    15891631msgid "Image Width (px):"
    15901632msgstr ""
    15911633
    1592 #: core/admin/settings/tab-content/short-codes.php:412
    1593 #: core/admin/settings/tab-content/short-codes.php:418
     1634#: core/admin/settings/tab-content/short-codes.php:421
     1635#: core/admin/settings/tab-content/short-codes.php:427
    15941636msgid "300"
    15951637msgstr ""
    15961638
    1597 #: core/admin/settings/tab-content/short-codes.php:417
     1639#: core/admin/settings/tab-content/short-codes.php:426
    15981640msgid "Image Height (px):"
    15991641msgstr ""
    16001642
    1601 #: core/admin/settings/tab-content/short-codes.php:424
     1643#: core/admin/settings/tab-content/short-codes.php:434
     1644#: core/widgets/bricks/components/woo-filter.php:673
     1645#: core/widgets/bricks/components/woo-filter.php:676
     1646#: core/widgets/elementor/woo-filter/woo-filter.php:639
     1647#: core/widgets/elementor/woo-filter/woo-filter.php:642
     1648msgid "Choose one image mode: Rollover Image or Gallery Slider. They cannot be enabled at the same time."
     1649msgstr ""
     1650
     1651#: core/admin/settings/tab-content/short-codes.php:436
     1652msgid "Rollover Image:"
     1653msgstr ""
     1654
     1655#: core/admin/settings/tab-content/short-codes.php:439
     1656msgid "Hover Gallery Image (1-5):"
     1657msgstr ""
     1658
     1659#: core/admin/settings/tab-content/short-codes.php:441
     1660msgid "Rollover Transition:"
     1661msgstr ""
     1662
     1663#: core/admin/settings/tab-content/short-codes.php:443
     1664msgid "Gallery Slider:"
     1665msgstr ""
     1666
     1667#: core/admin/settings/tab-content/short-codes.php:447
     1668msgid "Product Attributes"
     1669msgstr ""
     1670
     1671#: core/admin/settings/tab-content/short-codes.php:456
    16021672msgid "Show Rating:"
    16031673msgstr ""
    16041674
    1605 #: core/admin/settings/tab-content/short-codes.php:429
     1675#: core/admin/settings/tab-content/short-codes.php:461
    16061676msgid "Show Sorting:"
    16071677msgstr ""
    16081678
    1609 #: core/admin/settings/tab-content/short-codes.php:436
     1679#: core/admin/settings/tab-content/short-codes.php:468
    16101680msgid "Show Categories:"
    16111681msgstr ""
    16121682
    1613 #: core/admin/settings/tab-content/short-codes.php:440
     1683#: core/admin/settings/tab-content/short-codes.php:472
    16141684msgid "Show On Sale:"
    16151685msgstr ""
    16161686
    1617 #: core/admin/settings/tab-content/short-codes.php:446
     1687#: core/admin/settings/tab-content/short-codes.php:478
    16181688#: core/admin/wp-filter.php:221
    16191689msgid "Copy Filter Shortcodes"
    … …  
    17781848
    17791849#: core/frontend/search-filter/templates/templates.php:38
    1780 #: utils/helper.php:1201
     1850#: utils/helper.php:1205
    17811851#: build/index.js:1
    17821852msgid "Load More"
    17831853msgstr ""
    17841854
    1785 #: core/frontend/shortcodes.php:130
     1855#: core/frontend/shortcodes.php:137
    17861856#: templates/woo-filter/parts/product-search.php:19
    17871857msgid "Search here"
    17881858msgstr ""
    17891859
    1790 #: core/frontend/shortcodes.php:227
    1791 #: core/frontend/shortcodes.php:241
     1860#: core/frontend/shortcodes.php:234
     1861#: core/frontend/shortcodes.php:248
    17921862msgid "Please Active FilterPlus Pro"
    17931863msgstr ""
    … …  
    17951865#: core/widgets/bricks/components/woo-filter.php:31
    17961866#: core/widgets/bricks/components/wp-filter.php:31
    1797 #: core/widgets/elementor/woo-filter/woo-filter.php:583
     1867#: core/widgets/elementor/woo-filter/woo-filter.php:603
    17981868#: core/widgets/elementor/wp-filter/wp-filter.php:345
    17991869#: build/index.js:1
    … …  
    18681938#: core/widgets/bricks/components/wp-filter.php:101
    18691939#: core/widgets/elementor/woo-filter/woo-filter.php:147
    1870 #: core/widgets/elementor/woo-filter/woo-filter.php:1815
     1940#: core/widgets/elementor/woo-filter/woo-filter.php:1863
    18711941#: core/widgets/elementor/wp-filter/wp-filter.php:121
    18721942#: build/index.js:1
    … …  
    21172187
    21182188#: core/widgets/bricks/components/woo-filter.php:547
     2189#: core/widgets/elementor/woo-filter/woo-filter.php:556
     2190#: build/index.js:1
     2191msgid "Stock Label"
     2192msgstr ""
     2193
     2194#: core/widgets/bricks/components/woo-filter.php:556
    21192195#: core/widgets/elementor/woo-filter/woo-filter.php:546
    21202196#: build/index.js:1
    2121 msgid "Stock Label"
    2122 msgstr ""
    2123 
    2124 #: core/widgets/bricks/components/woo-filter.php:558
    2125 #: core/widgets/elementor/woo-filter/woo-filter.php:556
     2197msgid "Stock Filter Layout"
     2198msgstr ""
     2199
     2200#: core/widgets/bricks/components/woo-filter.php:568
     2201#: core/widgets/elementor/woo-filter/woo-filter.php:566
    21262202#: templates/woo-filter/template-1/on-sale.php:5
    21272203#: build/index.js:1
    … …  
    21292205msgstr ""
    21302206
    2131 #: core/widgets/bricks/components/woo-filter.php:568
    2132 #: core/widgets/elementor/woo-filter/woo-filter.php:568
     2207#: core/widgets/bricks/components/woo-filter.php:578
     2208#: core/widgets/elementor/woo-filter/woo-filter.php:588
    21332209#: build/index.js:1
    21342210msgid "On Sale Label"
    21352211msgstr ""
    21362212
    2137 #: core/widgets/bricks/components/woo-filter.php:579
     2213#: core/widgets/bricks/components/woo-filter.php:587
     2214#: core/widgets/elementor/woo-filter/woo-filter.php:578
     2215#: build/index.js:1
     2216msgid "On Sale Filter Layout"
     2217msgstr ""
     2218
     2219#: core/widgets/bricks/components/woo-filter.php:599
     2220#: core/widgets/elementor/woo-filter/woo-filter.php:669
     2221#: build/index.js:1
     2222msgid "Display Title"
     2223msgstr ""
     2224
     2225#: core/widgets/bricks/components/woo-filter.php:609
     2226#: core/widgets/elementor/woo-filter/woo-filter.php:679
     2227msgid "Display Descrtiption"
     2228msgstr ""
     2229
     2230#: core/widgets/bricks/components/woo-filter.php:619
     2231#: core/widgets/elementor/woo-filter/woo-filter.php:689
     2232#: build/index.js:1
     2233msgid "Display Price"
     2234msgstr ""
     2235
     2236#: core/widgets/bricks/components/woo-filter.php:628
     2237#: core/widgets/elementor/woo-filter/woo-filter.php:699
     2238#: build/index.js:1
     2239msgid "Display Add to Cart"
     2240msgstr ""
     2241
     2242#: core/widgets/bricks/components/woo-filter.php:637
     2243#: core/widgets/elementor/woo-filter/woo-filter.php:709
     2244#: build/index.js:1
     2245msgid "Add to Cart Text"
     2246msgstr ""
     2247
     2248#: core/widgets/bricks/components/woo-filter.php:645
     2249#: core/widgets/elementor/woo-filter/woo-filter.php:611
     2250#: build/index.js:1
     2251msgid "Image Size"
     2252msgstr ""
     2253
     2254#: core/widgets/bricks/components/woo-filter.php:649
     2255msgid "Select Image Size"
     2256msgstr ""
     2257
     2258#: core/widgets/bricks/components/woo-filter.php:658
    21382259#: core/widgets/elementor/woo-filter/woo-filter.php:621
    21392260#: build/index.js:1
    2140 msgid "Display Title"
    2141 msgstr ""
    2142 
    2143 #: core/widgets/bricks/components/woo-filter.php:589
     2261msgid "Image Width (px)"
     2262msgstr ""
     2263
     2264#: core/widgets/bricks/components/woo-filter.php:667
    21442265#: core/widgets/elementor/woo-filter/woo-filter.php:631
    2145 msgid "Display Descrtiption"
    2146 msgstr ""
    2147 
    2148 #: core/widgets/bricks/components/woo-filter.php:599
     2266#: build/index.js:1
     2267msgid "Image Height (px)"
     2268msgstr ""
     2269
     2270#: core/widgets/bricks/components/woo-filter.php:673
     2271#: core/widgets/elementor/woo-filter/woo-filter.php:639
     2272msgid "Rollover Image"
     2273msgstr ""
     2274
     2275#: core/widgets/bricks/components/woo-filter.php:673
     2276#: core/widgets/bricks/components/woo-filter.php:674
     2277#: core/widgets/bricks/components/woo-filter.php:675
     2278#: core/widgets/bricks/components/woo-filter.php:676
     2279#: core/widgets/elementor/woo-filter/woo-filter.php:196
     2280#: core/widgets/elementor/woo-filter/woo-filter.php:616
     2281#: core/widgets/elementor/woo-filter/woo-filter.php:639
     2282#: core/widgets/elementor/woo-filter/woo-filter.php:640
    21492283#: core/widgets/elementor/woo-filter/woo-filter.php:641
    2150 #: build/index.js:1
    2151 msgid "Display Price"
    2152 msgstr ""
    2153 
    2154 #: core/widgets/bricks/components/woo-filter.php:608
     2284#: core/widgets/elementor/woo-filter/woo-filter.php:642
    21552285#: core/widgets/elementor/woo-filter/woo-filter.php:651
    21562286#: build/index.js:1
    2157 msgid "Display Add to Cart"
    2158 msgstr ""
    2159 
    2160 #: core/widgets/bricks/components/woo-filter.php:617
    2161 #: core/widgets/elementor/woo-filter/woo-filter.php:661
    2162 #: build/index.js:1
    2163 msgid "Add to Cart Text"
    2164 msgstr ""
    2165 
    2166 #: core/widgets/bricks/components/woo-filter.php:625
    2167 #: core/widgets/elementor/woo-filter/woo-filter.php:591
    2168 #: build/index.js:1
    2169 msgid "Image Size"
    2170 msgstr ""
    2171 
    2172 #: core/widgets/bricks/components/woo-filter.php:629
    2173 msgid "Select Image Size"
    2174 msgstr ""
    2175 
    2176 #: core/widgets/bricks/components/woo-filter.php:638
    2177 #: core/widgets/elementor/woo-filter/woo-filter.php:601
    2178 #: build/index.js:1
    2179 msgid "Image Width (px)"
    2180 msgstr ""
    2181 
    2182 #: core/widgets/bricks/components/woo-filter.php:647
    2183 #: core/widgets/elementor/woo-filter/woo-filter.php:611
    2184 #: build/index.js:1
    2185 msgid "Image Height (px)"
    2186 msgstr ""
    2187 
    2188 #: core/widgets/bricks/components/woo-filter.php:656
    2189 #: core/widgets/elementor/woo-filter/woo-filter.php:669
     2287msgid "Upgrade to Pro to use this feature."
     2288msgstr ""
     2289
     2290#: core/widgets/bricks/components/woo-filter.php:674
     2291#: core/widgets/elementor/woo-filter/woo-filter.php:640
     2292msgid "Hover Gallery Image (1-5)"
     2293msgstr ""
     2294
     2295#: core/widgets/bricks/components/woo-filter.php:674
     2296msgid "Select the gallery image shown on hover; the last available image is used when needed."
     2297msgstr ""
     2298
     2299#: core/widgets/bricks/components/woo-filter.php:675
     2300#: core/widgets/elementor/woo-filter/woo-filter.php:641
     2301msgid "Rollover Transition"
     2302msgstr ""
     2303
     2304#: core/widgets/bricks/components/woo-filter.php:676
     2305#: core/widgets/elementor/woo-filter/woo-filter.php:642
     2306msgid "Gallery Slider"
     2307msgstr ""
     2308
     2309#: core/widgets/bricks/components/woo-filter.php:680
     2310#: core/widgets/elementor/woo-filter/woo-filter.php:717
    21902311#: build/index.js:1
    21912312msgid "Display Rating"
    21922313msgstr ""
    21932314
    2194 #: core/widgets/bricks/components/woo-filter.php:665
    2195 #: core/widgets/elementor/woo-filter/woo-filter.php:679
     2315#: core/widgets/bricks/components/woo-filter.php:689
     2316#: core/widgets/elementor/woo-filter/woo-filter.php:727
    21962317#: build/index.js:1
    21972318msgid "Display Sorting"
    21982319msgstr ""
    21992320
    2200 #: core/widgets/bricks/components/woo-filter.php:675
     2321#: core/widgets/bricks/components/woo-filter.php:699
    22012322#: core/widgets/bricks/components/wp-filter.php:147
    22022323#: core/widgets/bricks/components/wp-filter.php:341
    2203 #: core/widgets/elementor/woo-filter/woo-filter.php:690
     2324#: core/widgets/elementor/woo-filter/woo-filter.php:738
    22042325#: core/widgets/elementor/wp-filter/wp-filter.php:169
    22052326#: build/index.js:1
    … …  
    22072328msgstr ""
    22082329
    2209 #: core/widgets/bricks/components/woo-filter.php:685
    2210 #: core/widgets/elementor/woo-filter/woo-filter.php:701
     2330#: core/widgets/bricks/components/woo-filter.php:709
     2331#: core/widgets/elementor/woo-filter/woo-filter.php:749
    22112332#: build/index.js:1
    22122333msgid "Display On Sale"
    22132334msgstr ""
    22142335
    2215 #: core/widgets/bricks/components/woo-filter.php:695
     2336#: core/widgets/bricks/components/woo-filter.php:719
    22162337#: core/widgets/bricks/components/wp-filter.php:351
    2217 #: core/widgets/elementor/woo-filter/woo-filter.php:713
     2338#: core/widgets/elementor/woo-filter/woo-filter.php:761
    22182339#: build/index.js:1
    22192340msgid "Display Tags"
    22202341msgstr ""
    22212342
    2222 #: core/widgets/bricks/components/woo-filter.php:705
    2223 #: core/widgets/elementor/woo-filter/woo-filter.php:1778
     2343#: core/widgets/bricks/components/woo-filter.php:729
     2344#: core/widgets/elementor/woo-filter/woo-filter.php:1826
    22242345#: build/index.js:1
    22252346msgid "Desktop Columns"
    22262347msgstr ""
    22272348
    2228 #: core/widgets/bricks/components/woo-filter.php:716
    2229 #: core/widgets/elementor/woo-filter/woo-filter.php:1789
     2349#: core/widgets/bricks/components/woo-filter.php:740
     2350#: core/widgets/elementor/woo-filter/woo-filter.php:1837
    22302351#: build/index.js:1
    22312352msgid "Tablet Columns (≤1024px)"
    22322353msgstr ""
    22332354
    2234 #: core/widgets/bricks/components/woo-filter.php:727
    2235 #: core/widgets/elementor/woo-filter/woo-filter.php:1800
     2355#: core/widgets/bricks/components/woo-filter.php:751
     2356#: core/widgets/elementor/woo-filter/woo-filter.php:1848
    22362357#: build/index.js:1
    22372358msgid "Mobile Columns (≤480px)"
    … …  
    23312452#: core/widgets/elementor/woo-filter/woo-filter.php:505
    23322453#: core/widgets/elementor/woo-filter/woo-filter.php:536
    2333 #: core/widgets/elementor/woo-filter/woo-filter.php:558
    2334 #: core/widgets/elementor/woo-filter/woo-filter.php:623
    2335 #: core/widgets/elementor/woo-filter/woo-filter.php:633
    2336 #: core/widgets/elementor/woo-filter/woo-filter.php:643
    2337 #: core/widgets/elementor/woo-filter/woo-filter.php:653
     2454#: core/widgets/elementor/woo-filter/woo-filter.php:568
    23382455#: core/widgets/elementor/woo-filter/woo-filter.php:671
    23392456#: core/widgets/elementor/woo-filter/woo-filter.php:681
    2340 #: core/widgets/elementor/woo-filter/woo-filter.php:692
    2341 #: core/widgets/elementor/woo-filter/woo-filter.php:703
    2342 #: core/widgets/elementor/woo-filter/woo-filter.php:715
     2457#: core/widgets/elementor/woo-filter/woo-filter.php:691
     2458#: core/widgets/elementor/woo-filter/woo-filter.php:701
     2459#: core/widgets/elementor/woo-filter/woo-filter.php:719
     2460#: core/widgets/elementor/woo-filter/woo-filter.php:729
     2461#: core/widgets/elementor/woo-filter/woo-filter.php:740
     2462#: core/widgets/elementor/woo-filter/woo-filter.php:751
     2463#: core/widgets/elementor/woo-filter/woo-filter.php:763
    23432464#: core/widgets/elementor/wp-filter/wp-filter.php:62
    23442465#: core/widgets/elementor/wp-filter/wp-filter.php:171
    … …  
    23682489#: core/widgets/elementor/woo-filter/woo-filter.php:506
    23692490#: core/widgets/elementor/woo-filter/woo-filter.php:537
    2370 #: core/widgets/elementor/woo-filter/woo-filter.php:559
    2371 #: core/widgets/elementor/woo-filter/woo-filter.php:624
    2372 #: core/widgets/elementor/woo-filter/woo-filter.php:634
    2373 #: core/widgets/elementor/woo-filter/woo-filter.php:644
    2374 #: core/widgets/elementor/woo-filter/woo-filter.php:654
     2491#: core/widgets/elementor/woo-filter/woo-filter.php:569
    23752492#: core/widgets/elementor/woo-filter/woo-filter.php:672
    23762493#: core/widgets/elementor/woo-filter/woo-filter.php:682
    2377 #: core/widgets/elementor/woo-filter/woo-filter.php:693
    2378 #: core/widgets/elementor/woo-filter/woo-filter.php:704
    2379 #: core/widgets/elementor/woo-filter/woo-filter.php:716
     2494#: core/widgets/elementor/woo-filter/woo-filter.php:692
     2495#: core/widgets/elementor/woo-filter/woo-filter.php:702
     2496#: core/widgets/elementor/woo-filter/woo-filter.php:720
     2497#: core/widgets/elementor/woo-filter/woo-filter.php:730
     2498#: core/widgets/elementor/woo-filter/woo-filter.php:741
     2499#: core/widgets/elementor/woo-filter/woo-filter.php:752
     2500#: core/widgets/elementor/woo-filter/woo-filter.php:764
    23802501#: core/widgets/elementor/wp-filter/wp-filter.php:63
    23812502#: core/widgets/elementor/wp-filter/wp-filter.php:172
    … …  
    23972518msgstr ""
    23982519
    2399 #: core/widgets/elementor/woo-filter/woo-filter.php:196
    2400 #: core/widgets/elementor/woo-filter/woo-filter.php:596
    2401 #: build/index.js:1
    2402 msgid "Upgrade to Pro to use this feature."
    2403 msgstr ""
    2404 
    24052520#: core/widgets/elementor/woo-filter/woo-filter.php:204
    24062521#: build/index.js:1
    … …  
    24322547msgstr ""
    24332548
    2434 #: core/widgets/elementor/woo-filter/woo-filter.php:727
     2549#: core/widgets/elementor/woo-filter/woo-filter.php:640
     2550msgid "Choose the gallery image shown on hover; the last available image is used when needed."
     2551msgstr ""
     2552
     2553#: core/widgets/elementor/woo-filter/woo-filter.php:646
     2554msgid "Show Product Attributes"
     2555msgstr ""
     2556
     2557#: core/widgets/elementor/woo-filter/woo-filter.php:651
     2558msgid "Show the selected attributes on each product card."
     2559msgstr ""
     2560
     2561#: core/widgets/elementor/woo-filter/woo-filter.php:657
     2562msgid "Attribute List"
     2563msgstr ""
     2564
     2565#: core/widgets/elementor/woo-filter/woo-filter.php:664
     2566msgid "No attributes found. Add them under Products > Attributes."
     2567msgstr ""
     2568
     2569#: core/widgets/elementor/woo-filter/woo-filter.php:775
    24352570#: core/widgets/elementor/wp-filter/wp-filter.php:410
    24362571msgid "Button Style"
    24372572msgstr ""
    24382573
    2439 #: core/widgets/elementor/woo-filter/woo-filter.php:737
     2574#: core/widgets/elementor/woo-filter/woo-filter.php:785
    24402575#: core/widgets/elementor/wp-filter/wp-filter.php:420
    24412576msgid "Button Style controls are a Pro feature."
    24422577msgstr ""
    24432578
    2444 #: core/widgets/elementor/woo-filter/woo-filter.php:745
     2579#: core/widgets/elementor/woo-filter/woo-filter.php:793
    24452580#: core/widgets/elementor/wp-filter/wp-filter.php:428
    24462581msgid "Button Color"
    24472582msgstr ""
    24482583
    2449 #: core/widgets/elementor/woo-filter/woo-filter.php:756
     2584#: core/widgets/elementor/woo-filter/woo-filter.php:804
    24502585#: core/widgets/elementor/wp-filter/wp-filter.php:439
    24512586msgid "Button Hover Color"
    24522587msgstr ""
    24532588
    2454 #: core/widgets/elementor/woo-filter/woo-filter.php:767
     2589#: core/widgets/elementor/woo-filter/woo-filter.php:815
    24552590#: core/widgets/elementor/wp-filter/wp-filter.php:451
    24562591msgid "Button BG Color"
    24572592msgstr ""
    24582593
    2459 #: core/widgets/elementor/woo-filter/woo-filter.php:777
     2594#: core/widgets/elementor/woo-filter/woo-filter.php:825
    24602595#: core/widgets/elementor/wp-filter/wp-filter.php:461
    24612596msgid "Button BG Hover Color"
    24622597msgstr ""
    24632598
    2464 #: core/widgets/elementor/woo-filter/woo-filter.php:788
    2465 #: core/widgets/elementor/woo-filter/woo-filter.php:871
    2466 #: core/widgets/elementor/woo-filter/woo-filter.php:900
    2467 #: core/widgets/elementor/woo-filter/woo-filter.php:1010
    2468 #: core/widgets/elementor/woo-filter/woo-filter.php:1045
    2469 #: core/widgets/elementor/woo-filter/woo-filter.php:1086
    2470 #: core/widgets/elementor/woo-filter/woo-filter.php:1146
    2471 #: core/widgets/elementor/woo-filter/woo-filter.php:1439
    2472 #: core/widgets/elementor/woo-filter/woo-filter.php:1470
     2599#: core/widgets/elementor/woo-filter/woo-filter.php:836
     2600#: core/widgets/elementor/woo-filter/woo-filter.php:919
     2601#: core/widgets/elementor/woo-filter/woo-filter.php:948
     2602#: core/widgets/elementor/woo-filter/woo-filter.php:1058
     2603#: core/widgets/elementor/woo-filter/woo-filter.php:1093
     2604#: core/widgets/elementor/woo-filter/woo-filter.php:1134
     2605#: core/widgets/elementor/woo-filter/woo-filter.php:1194
     2606#: core/widgets/elementor/woo-filter/woo-filter.php:1487
     2607#: core/widgets/elementor/woo-filter/woo-filter.php:1518
    24732608#: core/widgets/elementor/wp-filter/wp-filter.php:472
    24742609#: core/widgets/elementor/wp-filter/wp-filter.php:679
    … …  
    24772612msgstr ""
    24782613
    2479 #: core/widgets/elementor/woo-filter/woo-filter.php:795
    2480 #: core/widgets/elementor/woo-filter/woo-filter.php:1275
     2614#: core/widgets/elementor/woo-filter/woo-filter.php:843
     2615#: core/widgets/elementor/woo-filter/woo-filter.php:1323
    24812616#: core/widgets/elementor/wp-filter/wp-filter.php:479
    24822617#: core/widgets/elementor/wp-filter/wp-filter.php:539
    … …  
    24842619msgstr ""
    24852620
    2486 #: core/widgets/elementor/woo-filter/woo-filter.php:817
    2487 #: core/widgets/elementor/woo-filter/woo-filter.php:1301
     2621#: core/widgets/elementor/woo-filter/woo-filter.php:865
     2622#: core/widgets/elementor/woo-filter/woo-filter.php:1349
    24882623#: core/widgets/elementor/wp-filter/wp-filter.php:501
    24892624#: core/widgets/elementor/wp-filter/wp-filter.php:562
    … …  
    24912626msgstr ""
    24922627
    2493 #: core/widgets/elementor/woo-filter/woo-filter.php:838
     2628#: core/widgets/elementor/woo-filter/woo-filter.php:886
    24942629#: core/widgets/elementor/wp-filter/wp-filter.php:651
    24952630msgid "Filter Style (Left Side)"
    24962631msgstr ""
    24972632
    2498 #: core/widgets/elementor/woo-filter/woo-filter.php:847
     2633#: core/widgets/elementor/woo-filter/woo-filter.php:895
    24992634msgid "Left Side style controls are a Pro feature."
    25002635msgstr ""
    25012636
    2502 #: core/widgets/elementor/woo-filter/woo-filter.php:853
     2637#: core/widgets/elementor/woo-filter/woo-filter.php:901
    25032638msgid "Filter Title"
    25042639msgstr ""
    25052640
    2506 #: core/widgets/elementor/woo-filter/woo-filter.php:860
    2507 #: core/widgets/elementor/woo-filter/woo-filter.php:889
    2508 #: core/widgets/elementor/woo-filter/woo-filter.php:1034
    2509 #: core/widgets/elementor/woo-filter/woo-filter.php:1383
    2510 #: core/widgets/elementor/woo-filter/woo-filter.php:1459
    2511 #: core/widgets/elementor/woo-filter/woo-filter.php:1835
     2641#: core/widgets/elementor/woo-filter/woo-filter.php:908
     2642#: core/widgets/elementor/woo-filter/woo-filter.php:937
     2643#: core/widgets/elementor/woo-filter/woo-filter.php:1082
     2644#: core/widgets/elementor/woo-filter/woo-filter.php:1431
     2645#: core/widgets/elementor/woo-filter/woo-filter.php:1507
     2646#: core/widgets/elementor/woo-filter/woo-filter.php:1883
    25122647#: core/widgets/elementor/wp-filter/wp-filter.php:668
    25132648#: core/widgets/elementor/wp-filter/wp-filter.php:737
    … …  
    25152650msgstr ""
    25162651
    2517 #: core/widgets/elementor/woo-filter/woo-filter.php:865
    2518 #: core/widgets/elementor/woo-filter/woo-filter.php:894
    2519 #: core/widgets/elementor/woo-filter/woo-filter.php:999
     2652#: core/widgets/elementor/woo-filter/woo-filter.php:913
     2653#: core/widgets/elementor/woo-filter/woo-filter.php:942
     2654#: core/widgets/elementor/woo-filter/woo-filter.php:1047
    25202655msgid "Hover Color"
    25212656msgstr ""
    25222657
    2523 #: core/widgets/elementor/woo-filter/woo-filter.php:875
    2524 #: core/widgets/elementor/woo-filter/woo-filter.php:904
     2658#: core/widgets/elementor/woo-filter/woo-filter.php:923
     2659#: core/widgets/elementor/woo-filter/woo-filter.php:952
    25252660msgid "Font Size"
    25262661msgstr ""
    25272662
    2528 #: core/widgets/elementor/woo-filter/woo-filter.php:882
     2663#: core/widgets/elementor/woo-filter/woo-filter.php:930
    25292664msgid "Filter Options Title"
    25302665msgstr ""
    25312666
    2532 #: core/widgets/elementor/woo-filter/woo-filter.php:911
     2667#: core/widgets/elementor/woo-filter/woo-filter.php:959
    25332668msgid "Filter Wrapper"
    25342669msgstr ""
    25352670
    2536 #: core/widgets/elementor/woo-filter/woo-filter.php:919
     2671#: core/widgets/elementor/woo-filter/woo-filter.php:967
    25372672msgid "Wrapper Background Color"
    25382673msgstr ""
    25392674
    2540 #: core/widgets/elementor/woo-filter/woo-filter.php:929
     2675#: core/widgets/elementor/woo-filter/woo-filter.php:977
    25412676msgid "Gap Between Filters"
    25422677msgstr ""
    25432678
    2544 #: core/widgets/elementor/woo-filter/woo-filter.php:941
    2545 #: core/widgets/elementor/woo-filter/woo-filter.php:1018
    2546 #: core/widgets/elementor/woo-filter/woo-filter.php:1095
    2547 #: core/widgets/elementor/woo-filter/woo-filter.php:1153
    2548 #: core/widgets/elementor/woo-filter/woo-filter.php:1477
    2549 #: core/widgets/elementor/woo-filter/woo-filter.php:1932
     2679#: core/widgets/elementor/woo-filter/woo-filter.php:989
     2680#: core/widgets/elementor/woo-filter/woo-filter.php:1066
     2681#: core/widgets/elementor/woo-filter/woo-filter.php:1143
     2682#: core/widgets/elementor/woo-filter/woo-filter.php:1201
     2683#: core/widgets/elementor/woo-filter/woo-filter.php:1525
     2684#: core/widgets/elementor/woo-filter/woo-filter.php:1980
    25502685#: core/widgets/elementor/wp-filter/wp-filter.php:636
    25512686#: core/widgets/elementor/wp-filter/wp-filter.php:694
    … …  
    25542689msgstr ""
    25552690
    2556 #: core/widgets/elementor/woo-filter/woo-filter.php:952
    2557 #: core/widgets/elementor/woo-filter/woo-filter.php:1258
     2691#: core/widgets/elementor/woo-filter/woo-filter.php:1000
     2692#: core/widgets/elementor/woo-filter/woo-filter.php:1306
    25582693#: core/widgets/elementor/wp-filter/wp-filter.php:705
    25592694#: core/widgets/elementor/wp-filter/wp-filter.php:774
    … …  
    25612696msgstr ""
    25622697
    2563 #: core/widgets/elementor/woo-filter/woo-filter.php:967
     2698#: core/widgets/elementor/woo-filter/woo-filter.php:1015
    25642699#: core/widgets/elementor/wp-filter/wp-filter.php:720
    25652700msgid "Filter Result Style (Right Side)"
    25662701msgstr ""
    25672702
    2568 #: core/widgets/elementor/woo-filter/woo-filter.php:976
     2703#: core/widgets/elementor/woo-filter/woo-filter.php:1024
    25692704msgid "Right Side style controls are a Pro feature."
    25702705msgstr ""
    25712706
    2572 #: core/widgets/elementor/woo-filter/woo-filter.php:989
     2707#: core/widgets/elementor/woo-filter/woo-filter.php:1037
    25732708msgid "Color"
    25742709msgstr ""
    25752710
    2576 #: core/widgets/elementor/woo-filter/woo-filter.php:1058
     2711#: core/widgets/elementor/woo-filter/woo-filter.php:1106
    25772712msgid "Regular Price Color"
    25782713msgstr ""
    25792714
    2580 #: core/widgets/elementor/woo-filter/woo-filter.php:1074
     2715#: core/widgets/elementor/woo-filter/woo-filter.php:1122
    25812716msgid "Sale Price Color"
    25822717msgstr ""
    25832718
    2584 #: core/widgets/elementor/woo-filter/woo-filter.php:1113
    2585 #: core/widgets/elementor/woo-filter/woo-filter.php:1701
     2719#: core/widgets/elementor/woo-filter/woo-filter.php:1161
     2720#: core/widgets/elementor/woo-filter/woo-filter.php:1749
    25862721msgid "Star Color"
    25872722msgstr ""
    25882723
    2589 #: core/widgets/elementor/woo-filter/woo-filter.php:1124
     2724#: core/widgets/elementor/woo-filter/woo-filter.php:1172
    25902725msgid "Star Background Color"
    25912726msgstr ""
    25922727
    2593 #: core/widgets/elementor/woo-filter/woo-filter.php:1135
     2728#: core/widgets/elementor/woo-filter/woo-filter.php:1183
    25942729msgid "Review Count Text Color"
    25952730msgstr ""
    25962731
    2597 #: core/widgets/elementor/woo-filter/woo-filter.php:1165
     2732#: core/widgets/elementor/woo-filter/woo-filter.php:1213
    25982733msgid "Cart Icon"
    25992734msgstr ""
    26002735
    2601 #: core/widgets/elementor/woo-filter/woo-filter.php:1170
     2736#: core/widgets/elementor/woo-filter/woo-filter.php:1218
    26022737msgid "Icon Color"
    26032738msgstr ""
    26042739
    2605 #: core/widgets/elementor/woo-filter/woo-filter.php:1183
     2740#: core/widgets/elementor/woo-filter/woo-filter.php:1231
    26062741msgid "Icon Hover Color"
    26072742msgstr ""
    26082743
    2609 #: core/widgets/elementor/woo-filter/woo-filter.php:1194
     2744#: core/widgets/elementor/woo-filter/woo-filter.php:1242
    26102745msgid "Icon Size"
    26112746msgstr ""
    26122747
    2613 #: core/widgets/elementor/woo-filter/woo-filter.php:1208
     2748#: core/widgets/elementor/woo-filter/woo-filter.php:1256
    26142749msgid "Button Text Color"
    26152750msgstr ""
    26162751
    2617 #: core/widgets/elementor/woo-filter/woo-filter.php:1219
     2752#: core/widgets/elementor/woo-filter/woo-filter.php:1267
    26182753msgid "Button Text Typography"
    26192754msgstr ""
    26202755
    2621 #: core/widgets/elementor/woo-filter/woo-filter.php:1226
     2756#: core/widgets/elementor/woo-filter/woo-filter.php:1274
    26222757msgid "Button Background Color"
    26232758msgstr ""
    26242759
    2625 #: core/widgets/elementor/woo-filter/woo-filter.php:1240
     2760#: core/widgets/elementor/woo-filter/woo-filter.php:1288
    26262761msgid "Button Hover Background Color"
    26272762msgstr ""
    26282763
    2629 #: core/widgets/elementor/woo-filter/woo-filter.php:1251
    2630 #: core/widgets/elementor/woo-filter/woo-filter.php:1858
     2764#: core/widgets/elementor/woo-filter/woo-filter.php:1299
     2765#: core/widgets/elementor/woo-filter/woo-filter.php:1906
    26312766#: core/widgets/elementor/wp-filter/wp-filter.php:687
    26322767#: core/widgets/elementor/wp-filter/wp-filter.php:756
    … …  
    26342769msgstr ""
    26352770
    2636 #: core/widgets/elementor/woo-filter/woo-filter.php:1270
     2771#: core/widgets/elementor/woo-filter/woo-filter.php:1318
    26372772msgid "Thumbnail"
    26382773msgstr ""
    26392774
    2640 #: core/widgets/elementor/woo-filter/woo-filter.php:1320
     2775#: core/widgets/elementor/woo-filter/woo-filter.php:1368
    26412776msgid "Badge"
    26422777msgstr ""
    26432778
    2644 #: core/widgets/elementor/woo-filter/woo-filter.php:1325
     2779#: core/widgets/elementor/woo-filter/woo-filter.php:1373
    26452780msgid "Badge Background Color"
    26462781msgstr ""
    26472782
    2648 #: core/widgets/elementor/woo-filter/woo-filter.php:1335
     2783#: core/widgets/elementor/woo-filter/woo-filter.php:1383
    26492784msgid "Badge Hover Background Color"
    26502785msgstr ""
    26512786
    2652 #: core/widgets/elementor/woo-filter/woo-filter.php:1345
     2787#: core/widgets/elementor/woo-filter/woo-filter.php:1393
    26532788msgid "Badge Text Color"
    26542789msgstr ""
    26552790
    2656 #: core/widgets/elementor/woo-filter/woo-filter.php:1355
     2791#: core/widgets/elementor/woo-filter/woo-filter.php:1403
    26572792msgid "Badge Padding"
    26582793msgstr ""
    26592794
    2660 #: core/widgets/elementor/woo-filter/woo-filter.php:1366
     2795#: core/widgets/elementor/woo-filter/woo-filter.php:1414
    26612796msgid "Badge Margin"
    26622797msgstr ""
    26632798
    2664 #: core/widgets/elementor/woo-filter/woo-filter.php:1378
     2799#: core/widgets/elementor/woo-filter/woo-filter.php:1426
    26652800msgid "Selected Filters"
    26662801msgstr ""
    26672802
    2668 #: core/widgets/elementor/woo-filter/woo-filter.php:1391
    2669 #: core/widgets/elementor/woo-filter/woo-filter.php:1844
     2803#: core/widgets/elementor/woo-filter/woo-filter.php:1439
     2804#: core/widgets/elementor/woo-filter/woo-filter.php:1892
    26702805msgid "Hover Text Color"
    26712806msgstr ""
    26722807
    2673 #: core/widgets/elementor/woo-filter/woo-filter.php:1401
     2808#: core/widgets/elementor/woo-filter/woo-filter.php:1449
    26742809msgid "Filter Tag Background Color"
    26752810msgstr ""
    26762811
    2677 #: core/widgets/elementor/woo-filter/woo-filter.php:1409
     2812#: core/widgets/elementor/woo-filter/woo-filter.php:1457
    26782813msgid "Filter Tag Hover Background Color"
    26792814msgstr ""
    26802815
    2681 #: core/widgets/elementor/woo-filter/woo-filter.php:1419
     2816#: core/widgets/elementor/woo-filter/woo-filter.php:1467
    26822817msgid "Filter Tag Border Color"
    26832818msgstr ""
    26842819
    2685 #: core/widgets/elementor/woo-filter/woo-filter.php:1427
     2820#: core/widgets/elementor/woo-filter/woo-filter.php:1475
    26862821msgid "Filter Tag Border Width"
    26872822msgstr ""
    26882823
    2689 #: core/widgets/elementor/woo-filter/woo-filter.php:1446
     2824#: core/widgets/elementor/woo-filter/woo-filter.php:1494
    26902825msgid "Filter Tag Padding"
    26912826msgstr ""
    26922827
    2693 #: core/widgets/elementor/woo-filter/woo-filter.php:1454
     2828#: core/widgets/elementor/woo-filter/woo-filter.php:1502
    26942829msgid "Result Count"
    26952830msgstr ""
    26962831
    2697 #: core/widgets/elementor/woo-filter/woo-filter.php:1488
     2832#: core/widgets/elementor/woo-filter/woo-filter.php:1536
    26982833msgid "Sort Bar"
    26992834msgstr ""
    27002835
    2701 #: core/widgets/elementor/woo-filter/woo-filter.php:1493
     2836#: core/widgets/elementor/woo-filter/woo-filter.php:1541
    27022837msgid "Bar Background Color"
    27032838msgstr ""
    27042839
    2705 #: core/widgets/elementor/woo-filter/woo-filter.php:1503
     2840#: core/widgets/elementor/woo-filter/woo-filter.php:1551
    27062841msgid "Bar Border Color"
    27072842msgstr ""
    27082843
    2709 #: core/widgets/elementor/woo-filter/woo-filter.php:1513
     2844#: core/widgets/elementor/woo-filter/woo-filter.php:1561
    27102845msgid "Bar Border Width"
    27112846msgstr ""
    27122847
    2713 #: core/widgets/elementor/woo-filter/woo-filter.php:1524
     2848#: core/widgets/elementor/woo-filter/woo-filter.php:1572
    27142849msgid "Bar Padding"
    27152850msgstr ""
    27162851
    2717 #: core/widgets/elementor/woo-filter/woo-filter.php:1535
     2852#: core/widgets/elementor/woo-filter/woo-filter.php:1583
    27182853msgid "Bar Margin"
    27192854msgstr ""
    27202855
    2721 #: core/widgets/elementor/woo-filter/woo-filter.php:1546
     2856#: core/widgets/elementor/woo-filter/woo-filter.php:1594
    27222857msgid "View Button Background Color"
    27232858msgstr ""
    27242859
    2725 #: core/widgets/elementor/woo-filter/woo-filter.php:1556
     2860#: core/widgets/elementor/woo-filter/woo-filter.php:1604
    27262861msgid "View Button Border Width"
    27272862msgstr ""
    27282863
    2729 #: core/widgets/elementor/woo-filter/woo-filter.php:1567
     2864#: core/widgets/elementor/woo-filter/woo-filter.php:1615
    27302865msgid "View Button Hover Background Color"
    27312866msgstr ""
    27322867
    2733 #: core/widgets/elementor/woo-filter/woo-filter.php:1577
     2868#: core/widgets/elementor/woo-filter/woo-filter.php:1625
    27342869msgid "View Button Icon Color"
    27352870msgstr ""
    27362871
    2737 #: core/widgets/elementor/woo-filter/woo-filter.php:1587
     2872#: core/widgets/elementor/woo-filter/woo-filter.php:1635
    27382873msgid "View Button Hover Icon Color"
    27392874msgstr ""
    27402875
    2741 #: core/widgets/elementor/woo-filter/woo-filter.php:1597
     2876#: core/widgets/elementor/woo-filter/woo-filter.php:1645
    27422877msgid "View Button Icon Size"
    27432878msgstr ""
    27442879
    2745 #: core/widgets/elementor/woo-filter/woo-filter.php:1608
     2880#: core/widgets/elementor/woo-filter/woo-filter.php:1656
    27462881msgid "Quick View"
    27472882msgstr ""
    27482883
    2749 #: core/widgets/elementor/woo-filter/woo-filter.php:1613
     2884#: core/widgets/elementor/woo-filter/woo-filter.php:1661
    27502885msgid "Overlay Background"
    27512886msgstr ""
    27522887
    2753 #: core/widgets/elementor/woo-filter/woo-filter.php:1621
     2888#: core/widgets/elementor/woo-filter/woo-filter.php:1669
    27542889msgid "Modal Background"
    27552890msgstr ""
    27562891
    2757 #: core/widgets/elementor/woo-filter/woo-filter.php:1629
     2892#: core/widgets/elementor/woo-filter/woo-filter.php:1677
    27582893msgid "Gallery Background"
    27592894msgstr ""
    27602895
    2761 #: core/widgets/elementor/woo-filter/woo-filter.php:1637
     2896#: core/widgets/elementor/woo-filter/woo-filter.php:1685
    27622897msgid "Close Button Background"
    27632898msgstr ""
    27642899
    2765 #: core/widgets/elementor/woo-filter/woo-filter.php:1645
     2900#: core/widgets/elementor/woo-filter/woo-filter.php:1693
    27662901msgid "Close Icon Color"
    27672902msgstr ""
    27682903
    2769 #: core/widgets/elementor/woo-filter/woo-filter.php:1653
     2904#: core/widgets/elementor/woo-filter/woo-filter.php:1701
    27702905msgid "Close Button Hover Background"
    27712906msgstr ""
    27722907
    2773 #: core/widgets/elementor/woo-filter/woo-filter.php:1661
     2908#: core/widgets/elementor/woo-filter/woo-filter.php:1709
    27742909msgid "Close Icon Hover Color"
    27752910msgstr ""
    27762911
    2777 #: core/widgets/elementor/woo-filter/woo-filter.php:1668
     2912#: core/widgets/elementor/woo-filter/woo-filter.php:1716
    27782913msgid "Close Button Border"
    27792914msgstr ""
    27802915
    2781 #: core/widgets/elementor/woo-filter/woo-filter.php:1673
     2916#: core/widgets/elementor/woo-filter/woo-filter.php:1721
    27822917msgid "Close Button Radius"
    27832918msgstr ""
    27842919
    2785 #: core/widgets/elementor/woo-filter/woo-filter.php:1681
     2920#: core/widgets/elementor/woo-filter/woo-filter.php:1729
    27862921msgid "Product Title Color"
    27872922msgstr ""
    27882923
    2789 #: core/widgets/elementor/woo-filter/woo-filter.php:1685
     2924#: core/widgets/elementor/woo-filter/woo-filter.php:1733
    27902925msgid "Product Title Typography"
    27912926msgstr ""
    27922927
    2793 #: core/widgets/elementor/woo-filter/woo-filter.php:1689
     2928#: core/widgets/elementor/woo-filter/woo-filter.php:1737
    27942929msgid "Category Color"
    27952930msgstr ""
    27962931
    2797 #: core/widgets/elementor/woo-filter/woo-filter.php:1693
     2932#: core/widgets/elementor/woo-filter/woo-filter.php:1741
    27982933msgid "Category Typography"
    27992934msgstr ""
    28002935
    2801 #: core/widgets/elementor/woo-filter/woo-filter.php:1697
     2936#: core/widgets/elementor/woo-filter/woo-filter.php:1745
    28022937msgid "Review Text Color"
    28032938msgstr ""
    28042939
    2805 #: core/widgets/elementor/woo-filter/woo-filter.php:1705
     2940#: core/widgets/elementor/woo-filter/woo-filter.php:1753
    28062941msgid "Price Color"
    28072942msgstr ""
    28082943
    2809 #: core/widgets/elementor/woo-filter/woo-filter.php:1709
     2944#: core/widgets/elementor/woo-filter/woo-filter.php:1757
    28102945msgid "Price Typography"
    28112946msgstr ""
    28122947
    2813 #: core/widgets/elementor/woo-filter/woo-filter.php:1713
     2948#: core/widgets/elementor/woo-filter/woo-filter.php:1761
    28142949msgid "Description Color"
    28152950msgstr ""
    28162951
    2817 #: core/widgets/elementor/woo-filter/woo-filter.php:1717
     2952#: core/widgets/elementor/woo-filter/woo-filter.php:1765
    28182953msgid "Description Typography"
    28192954msgstr ""
    28202955
    2821 #: core/widgets/elementor/woo-filter/woo-filter.php:1721
     2956#: core/widgets/elementor/woo-filter/woo-filter.php:1769
    28222957msgid "Option Label Color"
    28232958msgstr ""
    28242959
    2825 #: core/widgets/elementor/woo-filter/woo-filter.php:1725
     2960#: core/widgets/elementor/woo-filter/woo-filter.php:1773
    28262961msgid "Option and Quantity Text Color"
    28272962msgstr ""
    28282963
    2829 #: core/widgets/elementor/woo-filter/woo-filter.php:1729
     2964#: core/widgets/elementor/woo-filter/woo-filter.php:1777
    28302965msgid "Option and Quantity Background"
    28312966msgstr ""
    28322967
    2833 #: core/widgets/elementor/woo-filter/woo-filter.php:1733
     2968#: core/widgets/elementor/woo-filter/woo-filter.php:1781
    28342969msgid "Option and Quantity Border"
    28352970msgstr ""
    28362971
    2837 #: core/widgets/elementor/woo-filter/woo-filter.php:1737
     2972#: core/widgets/elementor/woo-filter/woo-filter.php:1785
    28382973msgid "Option and Quantity Radius"
    28392974msgstr ""
    28402975
    2841 #: core/widgets/elementor/woo-filter/woo-filter.php:1741
     2976#: core/widgets/elementor/woo-filter/woo-filter.php:1789
    28422977msgid "Add to Cart Text Color"
    28432978msgstr ""
    28442979
    2845 #: core/widgets/elementor/woo-filter/woo-filter.php:1745
     2980#: core/widgets/elementor/woo-filter/woo-filter.php:1793
    28462981msgid "Add to Cart Background"
    28472982msgstr ""
    28482983
    2849 #: core/widgets/elementor/woo-filter/woo-filter.php:1749
     2984#: core/widgets/elementor/woo-filter/woo-filter.php:1797
    28502985msgid "Add to Cart Hover Text Color"
    28512986msgstr ""
    28522987
    2853 #: core/widgets/elementor/woo-filter/woo-filter.php:1753
     2988#: core/widgets/elementor/woo-filter/woo-filter.php:1801
    28542989msgid "Add to Cart Hover Background"
    28552990msgstr ""
    28562991
    2857 #: core/widgets/elementor/woo-filter/woo-filter.php:1757
     2992#: core/widgets/elementor/woo-filter/woo-filter.php:1805
    28582993msgid "Add to Cart Typography"
    28592994msgstr ""
    28602995
    2861 #: core/widgets/elementor/woo-filter/woo-filter.php:1761
     2996#: core/widgets/elementor/woo-filter/woo-filter.php:1809
    28622997msgid "Add to Cart Radius"
    28632998msgstr ""
    28642999
    2865 #: core/widgets/elementor/woo-filter/woo-filter.php:1765
     3000#: core/widgets/elementor/woo-filter/woo-filter.php:1813
    28663001msgid "Details Link Color"
    28673002msgstr ""
    28683003
    2869 #: core/widgets/elementor/woo-filter/woo-filter.php:1769
     3004#: core/widgets/elementor/woo-filter/woo-filter.php:1817
    28703005msgid "Details Link Hover Color"
    28713006msgstr ""
    28723007
    2873 #: core/widgets/elementor/woo-filter/woo-filter.php:1773
     3008#: core/widgets/elementor/woo-filter/woo-filter.php:1821
    28743009msgid "Grid"
    28753010msgstr ""
    28763011
    2877 #: core/widgets/elementor/woo-filter/woo-filter.php:1783
     3012#: core/widgets/elementor/woo-filter/woo-filter.php:1831
    28783013msgid "e.g. 3"
    28793014msgstr ""
    28803015
    2881 #: core/widgets/elementor/woo-filter/woo-filter.php:1794
     3016#: core/widgets/elementor/woo-filter/woo-filter.php:1842
    28823017msgid "e.g. 2"
    28833018msgstr ""
    28843019
    2885 #: core/widgets/elementor/woo-filter/woo-filter.php:1805
     3020#: core/widgets/elementor/woo-filter/woo-filter.php:1853
    28863021msgid "e.g. 1"
    28873022msgstr ""
    28883023
    2889 #: core/widgets/elementor/woo-filter/woo-filter.php:1824
     3024#: core/widgets/elementor/woo-filter/woo-filter.php:1872
    28903025msgid "Pagination Style controls are a Pro feature."
    28913026msgstr ""
    28923027
    2893 #: core/widgets/elementor/woo-filter/woo-filter.php:1831
     3028#: core/widgets/elementor/woo-filter/woo-filter.php:1879
    28943029msgid "Pagination"
    28953030msgstr ""
    28963031
    2897 #: core/widgets/elementor/woo-filter/woo-filter.php:1839
     3032#: core/widgets/elementor/woo-filter/woo-filter.php:1887
    28983033msgid "Background Color"
    28993034msgstr ""
    29003035
    2901 #: core/widgets/elementor/woo-filter/woo-filter.php:1854
     3036#: core/widgets/elementor/woo-filter/woo-filter.php:1902
    29023037msgid "Hover Background Color"
    29033038msgstr ""
    29043039
    2905 #: core/widgets/elementor/woo-filter/woo-filter.php:1862
    2906 #: core/widgets/elementor/woo-filter/woo-filter.php:1920
     3040#: core/widgets/elementor/woo-filter/woo-filter.php:1910
     3041#: core/widgets/elementor/woo-filter/woo-filter.php:1968
    29073042#: core/widgets/elementor/wp-filter/wp-filter.php:624
    29083043msgid "Border Radius"
    29093044msgstr ""
    29103045
    2911 #: core/widgets/elementor/woo-filter/woo-filter.php:1866
     3046#: core/widgets/elementor/woo-filter/woo-filter.php:1914
    29123047msgid "Active Text Color"
    29133048msgstr ""
    29143049
    2915 #: core/widgets/elementor/woo-filter/woo-filter.php:1870
     3050#: core/widgets/elementor/woo-filter/woo-filter.php:1918
    29163051msgid "Active Background Color"
    29173052msgstr ""
    29183053
    2919 #: core/widgets/elementor/woo-filter/woo-filter.php:1879
     3054#: core/widgets/elementor/woo-filter/woo-filter.php:1927
    29203055#: core/widgets/elementor/wp-filter/wp-filter.php:582
    29213056msgid "Advance Style"
    29223057msgstr ""
    29233058
    2924 #: core/widgets/elementor/woo-filter/woo-filter.php:1888
     3059#: core/widgets/elementor/woo-filter/woo-filter.php:1936
    29253060#: core/widgets/elementor/wp-filter/wp-filter.php:591
    29263061msgid "Advance Style controls are a Pro feature."
    29273062msgstr ""
    29283063
    2929 #: core/widgets/elementor/woo-filter/woo-filter.php:1896
     3064#: core/widgets/elementor/woo-filter/woo-filter.php:1944
    29303065msgid "Box Background Color"
    29313066msgstr ""
    29323067
    2933 #: core/widgets/elementor/woo-filter/woo-filter.php:1908
     3068#: core/widgets/elementor/woo-filter/woo-filter.php:1956
    29343069#: core/widgets/elementor/wp-filter/wp-filter.php:612
    29353070msgid "Box Hover Bacground Color"
    … …  
    29373072
    29383073#: core/widgets/elementor/wp-filter/wp-filter.php:75
    2939 #: utils/helper.php:1184
     3074#: utils/helper.php:1188
    29403075#: build/index.js:1
    29413076msgid "Template 1"
    … …  
    30333168
    30343169#: templates/woo-filter/parts/category/categories-checkbox.php:38
    3035 #: templates/woo-filter/parts/category/categories-list.php:45
     3170#: templates/woo-filter/parts/category/categories-list.php:47
    30363171#: templates/woo-filter/parts/category/categories-radio.php:39
    30373172#: templates/woo-filter/parts/category/categories-select.php:26
    … …  
    31333268msgstr ""
    31343269
    3135 #: templates/woo-filter/template-2/template-2.php:85
     3270#: templates/woo-filter/template-2/template-2.php:87
    31363271msgid "Find Favorite Item"
    31373272msgstr ""
    31383273
    3139 #: templates/woo-filter/template-2/template-2.php:138
     3274#: templates/woo-filter/template-2/template-2.php:140
    31403275msgid "Filter and sort"
    31413276msgstr ""
    … …  
    31653300msgstr ""
    31663301
    3167 #: utils/helper.php:1147
     3302#: utils/helper.php:1151
    31683303#: build/index.js:1
    31693304msgid "OR"
    31703305msgstr ""
    31713306
    3172 #: utils/helper.php:1147
     3307#: utils/helper.php:1151
    31733308#: build/index.js:1
    31743309msgid "AND"
    31753310msgstr ""
    31763311
    3177 #: utils/helper.php:1156
     3312#: utils/helper.php:1160
    31783313msgid "Please Active FilterPlus Pro. It is Premium feature."
    31793314msgstr ""
    31803315
    3181 #: utils/helper.php:1200
     3316#: utils/helper.php:1204
    31823317#: build/index.js:1
    31833318msgid "Numbers"
    31843319msgstr ""
    31853320
    3186 #: utils/helper.php:1210
     3321#: utils/helper.php:1214
    31873322#: build/index.js:1
    31883323msgid "Left"
    31893324msgstr ""
    31903325
    3191 #: utils/helper.php:1211
     3326#: utils/helper.php:1215
    31923327#: build/index.js:1
    31933328msgid "Right"
    31943329msgstr ""
    31953330
    3196 #: utils/helper.php:1235
     3331#: utils/helper.php:1239
    31973332msgid "Full Size"
    31983333msgstr ""
    31993334
    3200 #: utils/helper.php:1236
     3335#: utils/helper.php:1240
    32013336msgid "Custom Size"
    32023337msgstr ""
    … …  
    32393374
    32403375#: build/index.js:1
     3376msgid "Layout"
     3377msgstr ""
     3378
     3379#: build/index.js:1
    32413380msgid "Display Description"
    32423381msgstr ""
  • filter-plus/trunk/readme.txt

    r3799880 r3801351  
    55Requires at least: 5.8
    66Tested up to: 7.0
    7 Stable tag: 1.1.44
     7Stable tag: 1.1.45
    88Requires PHP: 7.4
    99License: GPLv2 or later
    … …  
    204204
    205205== Changelog ==
     206
     207= 1.1.45 (November 14, 2026) =
     208* Fix: Gutenberg editor preview now loads the Pro stylesheet inside the editor canvas, so templates 3-8 look the same in the editor and on the frontend.
     209* Fix: Gutenberg editor preview now shows the product count and pagination like the frontend.
     210* Fix: Elementor widget now passes Product Attributes settings to the frontend, so colour dots and attribute chips show on product cards.
     211* New: Elementor widget gets the Show Product Attributes and Attribute List options.
     212* Fix: Elementor editor preview now shows Rollover Image, Gallery Slider and product attributes.
     213* Tweak: Elementor Rollover Image and Gallery Slider switches stay visible; turning one on turns the other off.
     214* Tweak: Gutenberg block multi-select options (Filter Order, Tags, Brands, Attributes, Attribute List) are now searchable select fields.
     215* Fix: PHP warning for a missing rollover effect setting.
    206216
    207217= 1.1.44 (November 13, 2026) =
  • filter-plus/trunk/templates/woo-filter/template-1/right-side/product-template.php

    r3799880 r3801351  
    99 */
    1010if (!function_exists('filterplus_render_grid_product')) {
    11 function filterplus_render_grid_product($product, $hide_prod_add_cart, $hide_prod_title, $hide_prod_desc, $hide_prod_rating, $hide_prod_price, $rollover_image = 'no', $rollover_image_number = 1, $rollover_effect = 'fade') {
     11function filterplus_render_grid_product($product, $hide_prod_add_cart, $hide_prod_title, $hide_prod_desc, $hide_prod_rating, $hide_prod_price, $rollover_image = 'no', $rollover_image_number = 1, $rollover_effect = 'fade', $gallery_slider = 'no') {
    1212        ?>
    1313        <div class="product-style product-style-<?php echo esc_attr($product['template']); ?>">
    … …  
    3333                    if ( class_exists('FilterPlusPro') ) {
    3434                        include_once \FilterPlusPro::locate_template( 'woo-filter/parts/rollover-image.php' );
    35                         if ( function_exists('filterplus_pro_gallery_slider_enabled') && filterplus_pro_gallery_slider_enabled() ) {
     35                        if ( function_exists('filterplus_pro_gallery_slider_markup') && ( 'yes' === $gallery_slider || ( function_exists('filterplus_pro_gallery_slider_enabled') && filterplus_pro_gallery_slider_enabled() ) ) ) {
    3636                            $fp_slider_markup = filterplus_pro_gallery_slider_markup( $product );
    3737                        }
  • filter-plus/trunk/templates/woo-filter/template-2/right-side/product-template.php

    r3799880 r3801351  
    88 * Grid template for products
    99 */
    10 function filterplus_render_grid_product($product, $hide_prod_add_cart, $hide_prod_title, $hide_prod_desc, $hide_prod_rating, $hide_prod_price, $rollover_image = 'no', $rollover_image_number = 1, $rollover_effect = 'fade') {
     10function filterplus_render_grid_product($product, $hide_prod_add_cart, $hide_prod_title, $hide_prod_desc, $hide_prod_rating, $hide_prod_price, $rollover_image = 'no', $rollover_image_number = 1, $rollover_effect = 'fade', $gallery_slider = 'no') {
    1111        ?>
    1212        <div class="product-style product-style-<?php echo intval($product['template']); ?>">
    … …  
    3333                    if ( class_exists('FilterPlusPro') ) {
    3434                        include_once \FilterPlusPro::locate_template( 'woo-filter/parts/rollover-image.php' );
    35                         if ( function_exists('filterplus_pro_gallery_slider_enabled') && filterplus_pro_gallery_slider_enabled() ) {
     35                        if ( function_exists('filterplus_pro_gallery_slider_markup') && ( 'yes' === $gallery_slider || ( function_exists('filterplus_pro_gallery_slider_enabled') && filterplus_pro_gallery_slider_enabled() ) ) ) {
    3636                            $fp_slider_markup = filterplus_pro_gallery_slider_markup( $product );
    3737                        }
Note: See TracChangeset for help on using the changeset viewer.