Отключение AJAX обновления корзины WooCommerce без потери функциональности

Почему отключают AJAX обновление корзины в WooCommerce?

AJAX обновление корзины в WooCommerce позволяет изменять количество товаров и видеть обновления без перезагрузки страницы. Однако в некоторых случаях это может создавать проблемы: конфликты с кастомными скриптами, ошибки при кэшировании, или замедлять работу страницы. В таких случаях возникает задача отключить AJAX обновления, сохранив при этом корректную работу корзины.

Диагностика проблем с AJAX обновлением корзины WooCommerce

Перед отключением AJAX стоит проверить, действительно ли обновление корзины вызывает проблемы:

  • Откройте консоль браузера (F12) и посмотрите на наличие ошибок JavaScript при изменении количества товаров в корзине.
  • Проверьте, не конфликтует ли тема или плагины с AJAX вызовами WooCommerce.
  • Проверьте, корректно ли обновляется общая сумма и итоги корзины при изменении количества товаров.
  • Отследите, не вызывает ли AJAX обновление проблем с кэшированием (например, при использовании плагинов кеша).

Пошаговое отключение AJAX обновления корзины в WooCommerce

Отключить AJAX обновление корзины можно несколькими способами. Ниже приведён проверенный метод, который отключает AJAX в изменении количества товаров в корзине, но сохраняет стандартное поведение WooCommerce.

1. Отключение скрипта AJAX-обновления корзины

Добавьте следующий код в functions.php вашей дочерней темы или в кастомный плагин:

function disable_woocommerce_cart_quantity_ajax() {
    if ( is_cart() ) {
        wp_dequeue_script( 'wc-cart-fragments' );
    }
}
add_action( 'wp_print_scripts', 'disable_woocommerce_cart_quantity_ajax', 100 );

Этот код отключает скрипт wc-cart-fragments, отвечающий за AJAX-обновление корзины.

2. Обеспечение корректной работы при обновлении количества товаров

Без AJAX обновления кнопка "Обновить корзину" перестанет работать автоматически при изменении количества. Чтобы пользователи не забывали обновить корзину, добавьте JavaScript, который включает кнопку при изменении поля количества:

function custom_cart_quantity_update_script() {
    if ( is_cart() ) {
        ?>
        <script type="text/javascript">
        jQuery(document).ready(function($) {
            $('form.woocommerce-cart-form').on('change', 'input.qty', function() {
                $('button[name="update_cart"]').prop('disabled', false);
            });
            // Изначально кнопка может быть отключена
            $('button[name="update_cart"]').prop('disabled', true);
        });
        </script>
        <?php
    }
}
add_action( 'wp_footer', 'custom_cart_quantity_update_script' );

Проверка результата после внедрения

  • Перейдите на страницу корзины.
  • Измените количество товара в поле input.qty. Кнопка "Обновить корзину" должна стать активной.
  • Нажмите кнопку "Обновить корзину" — страница должна перезагрузиться, и отобразить обновлённые итоги.
  • В консоли браузера не должно быть ошибок JavaScript.
  • Кэширование страниц не должно приводить к некорректному отображению корзины.

Частые ошибки и как их исправить

  • Кнопка "Обновить корзину" не активируется при изменении количества
    Проверьте, что JavaScript из второго шага подключён и что нет конфликтов с другими скриптами. Убедитесь, что jQuery загружен.
  • Кнопка "Обновить корзину" не работает или не обновляет содержимое
    Возможно, кэшируетесь слишком агрессивно. Отключите кэширование страницы корзины или настройте исключения для WooCommerce.
  • Страница корзины не показывает обновлённые итоги
    Проверьте шаблоны темы. Используйте стандартные шаблоны WooCommerce или убедитесь, что они корректно обновляют данные после перезагрузки.

Практические советы по безопасности и производительности

  • Отключение AJAX обновления снижает нагрузку на сервер, если AJAX-запросы конфликтуют с другими скриптами или кэшированием.
  • Обязательно исключайте страницу корзины из кэширования плагина кеша, иначе изменения не будут отображаться корректно.
  • Для улучшения UX можно добавить уведомление пользователю о необходимости нажать кнопку "Обновить корзину" после изменения количества.
  • Регулярно проверяйте совместимость с обновлениями WooCommerce и темой, чтобы избежать поломок.

Сравнение вариантов отключения AJAX обновления корзины

МетодПреимуществаНедостатки
Полное отключение скрипта wc-cart-fragmentsПростота реализации, снижает конфликты и нагрузкуТребует ручного обновления корзины пользователем
Кастомное отключение AJAX в обработчиках темы/плагиновБолее гибкая настройка, можно оставить часть AJAX функцийСложнее в реализации, требует глубокого тестирования
Использование сторонних плагинов для управления AJAX WooCommerceПростота для новичков, готовые решенияМогут влиять на производительность, ограничения настройки
Как запретить индексацию определённых страниц в WordPress
05.03.2026
Как создать автоматический импорт постов в WordPress из внешнего источника
18.12.2025
Автоматическое создание резервных копий WordPress: лучшие методы и примеры
02.12.2025
Как удалить или отключить плагины WordPress без доступа к админ панели
06.12.2025
Автоматический импорт отзывов из Instagram в WordPress
22.02.2026