Ответы пользователя по тегу WooСommerce
  • Как обработать итоговою стоимость заказа WooCommerce?

    gromel
    @gromel
    SEO | VDS | WP | BITRIX
    Делал клиенту три цены (розница, опт, опт2) от суммы в корзине.
    Все действия, по выводу и обработке данных, в этих файлах:
    \themes\name\woocommerce\cart\cart.php
    \themes\name\woocommerce\checkout\review-order.php
    \themes\name\woocommerce\emails\email-order-items.php
    \themes\name\woocommerce\order\order-details.php
    \themes\name\woocommerce\order\order-details-item.php
    Ответ написан
    Комментировать
  • Почему после обновления WooCommerce не работает wc_product_class()?

    gromel
    @gromel
    SEO | VDS | WP | BITRIX
    Да все работает как прежде.
    Причина в не обновленных шаблонах используемый темы.
    Необходимо обновить тему или, если еще у разработчика темы нет обновления, то самому вручную поправить файлы шаблонов темы, которые используют wc_product_class( ).
    Например, в файле, по пути:
    \wp-content\themes\imya-temy\woocommerce\content-product.php
    заменить
    wc_product_class( );
    на
    wc_product_class( '', $product );
    Ответ написан
    Комментировать
  • Как оптимизировать обращения к базе данных при получении вариации товара (выборе атрибута продукта)?

    gromel
    @gromel
    SEO | VDS | WP | BITRIX
    Еще есть один хитрый момент, касаемо опций на странице товара у которого больше 30 вариаций.

    Когда превышен определенный предел вариаций (30), WooCommerce просто отображает все опции, а не какие из них должны быть доступны. Поскольку динамическая загрузка большого количества данных может стать потенциальной проблемой производительности, поэтому стоит ограничение на 30 вариаций.

    Необходимо самостоятельно прописать максимальное кол-во, иначе будут глюки/сложности с данными требующие динамической обработки доступных вариаций.

    add_filter( 'woocommerce_ajax_variation_threshold', 'wc_inc_ajax_threshold_more', 10, 2 );
    function wc_inc_ajax_threshold_more($qty, $product) {
        return 150;//или больше...
    }
    Ответ написан
    1 комментарий
  • Как сделать категории всегда развернутыми?

    gromel
    @gromel
    SEO | VDS | WP | BITRIX
    1. Стандартный виджет Woo без управления выпадающего списка "открыть/закрыть". То, что у тебя на скрине — функционал темы, подключается, вернее всего, скриптом.
      Файл со скриптами темы, обычно можно найти по этому пути, имя файла может быть и другим: \themes\имя_темы\assets\js\main.js
      Если юзаешь поиск по файлам темы, то ищи что-то подобное:
      $('.widget_product_categories').addClass('toggle-menu');
      $('.toggle-menu ul.children, .toggle-menu ul.sub-menu').addClass('toggle-submenu');
      ...
      $('.widget_product_categories').each(function() {
       $(this).find('li').has('.children').has('li').prepend('<div class="open-this"></div>');
      ...

      Обрати внимание: "open-this" может быть и просто "open". Смотри какие блоки скрипт добавляет к виджету во фронтенде.

    2. Как найдешь код, то дальше дело техники. Например, так:
      $('.toggle-menu').each(function() {
        var $this = $(this);
        $this.find('.toggle-menu-current-item').last().parents('.toggle-menu-item-parent').addClass('opened').children('.toggle-submenu').show();
        $this.find('.current-cat').addClass('opened').children('.toggle-submenu').show();
        ...
       });

      Класс 'opened' для добавления своих стилей.

    3. Приправить немного юзер-френдли логикой по желанию. Например, при открытии другого списка, что бы предыдущий закрывался.
    Ответ написан
    Комментировать