globus812
@globus812

Как сделать такое меню «Категории товаров» Woocommerce?

Как сделать такое меню "Категории товаров" Woocommerce, как на этом сайте mir-econom-sveta.com/? Там используется какой-то плагин для этого или можно внести какие-то изменения в код стандартного меню виджета "Категории товаров" Woocommerce?

У меня стоит тема Storefront (Wordpress + Woocommerce).
  • Вопрос задан
  • 2558 просмотров
Пригласить эксперта
Ответы на вопрос 2
maxxannik
@maxxannik
Сайты на WordPress + Интернет магазины WooCommerce
Это функционал темы. Там используется какой то JS плагин типа этого jordnkr.github.io/collapsible
Ответ написан
wppanda5
@wppanda5 Куратор тега WordPress
WordPress Mедведь
Это стандартный виджет категории товаров, модифицированный через js ну и плюс стили
скрипт там такой :
// Woocommerce Widget Toggle
(function(theme, $) {

    theme = theme || {};

    var instanceName = '__wooWidgetToggle';

    var WooWidgetToggle = function($el, opts) {
        return this.initialize($el, opts);
    };

    WooWidgetToggle.defaults = {

    };

    WooWidgetToggle.prototype = {
        initialize: function($el, opts) {
            if ($el.data(instanceName)) {
                return this;
            }

            this.$el = $el;

            this
                .setData()
                .setOptions(opts)
                .build();

            return this;
        },

        setData: function() {
            this.$el.data(instanceName, this);

            return this;
        },

        setOptions: function(opts) {
            this.options = $.extend(true, {}, WooWidgetToggle.defaults, opts, {
                wrapper: this.$el
            });

            return this;
        },

        build: function() {
            var self = this,
                $el = this.options.wrapper;

            $el.parent().removeClass('closed');
            if (!$el.find('.toggle').length) {
                $el.append('<span class="toggle"></span>');
            }
            $el.find('.toggle').click(function() {
                if ($el.next().is(":visible")){
                    $el.parent().addClass('closed');
                } else {
                    $el.parent().removeClass('closed');
                }
                $el.next().stop().slideToggle(200);
                theme.refreshVCContent();
            });

            return this;
        }
    };

    // expose to scope
    $.extend(theme, {
        WooWidgetToggle: WooWidgetToggle
    });

    // jquery plugin
    $.fn.themeWooWidgetToggle = function(opts) {
        return this.map(function() {
            var $this = $(this);

            if ($this.data(instanceName)) {
                return $this.data(instanceName);
            } else {
                return new theme.WooWidgetToggle($this, opts);
            }

        });
    }

}).apply(this, [window.theme, jQuery]);
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы