Автообновление корзины WooCommerce

Простой сниппет для автоматическоого обновления корзины в WooCommerce при изменении количества товара.
Общий смысл такой: на странице корзины добавляем скрипт в футере сайта, который вешает «слушателя» на поле с количеством товара.

При изменении этого поля делаем програмный клик на кнопку обновления корзины. При этом саму кнопку мы скрываем стилями, чтобы всё было по красоте.

Подключаем скрипт в футер, для чего цепляемся за хук wp_footer в файле functions.php вашей дочерней темы:

add_action(
    'wp_footer',
    function() {
        // Проверяем, что это страница корзины.
        if ( ! is_cart() ) {
            return;
        }

        ?>
        jQuery( function( $ ) {
            var delay;

            // Вешаем "слушателя".
            $( '.woocommerce' ).on( 'change', 'input.qty', function() {
 
                if ( undefined !== delay ) {
                    clearTimeout( delay );
                }
 
                // Делаем задержку в полсекунды, чтобы не генерить 
                // лишние запросы на сервер.
                delay = setTimeout(
                    function() {
                        // Кликаем на кпоку обновления корзины.
                        $( '[name="update_cart"]' ).trigger( 'click' );
                    },
                    500
                );
 
            } );
        } );
        <style>
        /* Прячем кнопку */
        .woocommerce [name="update_cart"] {
            display: none;
        }
        </style>
        <?php
    }
);

Ссылки

Источник: https://www.kobzarev.com/wordpress/woocommerce-autoupdate-cart/

Михаил Кобзарёв

Суровый русский тимлид. Жил в Магадане, в офисе московских веб студий и в Тульской деревне. Виртуозно знает WordPress, PHP, ООП, Vue.js и вот это вот все. Делает крутые высоконагруженные сайты, поэтому уже почти захватил весь рынок WordPress разработки в России. Не дает никому делать сайты без спроса. Ведет блог о разработке, дайджест в телеграмме и в ВК. Любит сиськи, баню и радиоэлектронику. 100% патриот (но это не точно). Тролль 542 уровня. Ездит в отпуск раз в 5 лет.

Добавить комментарий

%d такие блоггеры, как: