Как правильно отключить AJAX в WooCommerce без конфликтов

Почему может понадобиться отключить AJAX в WooCommerce

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

Диагностика проблемы: как понять, что AJAX конфликтует

  • При добавлении товара в корзину страница не обновляется, а корзина не меняется визуально.
  • Фильтры товаров не срабатывают или отображают неверные результаты.
  • Ошибки в консоли браузера, связанные с AJAX-запросами WooCommerce.
  • Конфликты с плагинами, которые используют свои AJAX-запросы.

Проверка консоли и сетевых запросов

Откройте инструменты разработчика (F12), вкладки «Консоль» и «Сеть». При добавлении товара в корзину или использовании фильтра посмотрите, отправляются ли AJAX-запросы, и нет ли ошибок 400, 500 или JS-ошибок.

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

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

add_filter('woocommerce_add_to_cart_fragments', '__return_empty_array');

Этот фильтр отключает обновление мини-корзины через AJAX.

Чтобы отключить AJAX для обновления корзины на странице корзины, добавьте следующий скрипт в footer.php темы или enqueue в functions.php:

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

Если нужно отключить AJAX фильтры товаров (например, в виджетах или плагинах), то нужно смотреть конкретно на плагин фильтрации и его настройки. В базовом WooCommerce AJAX фильтры отсутствуют.

Отключение AJAX в шаблонах

Если в вашей теме используются кастомные AJAX-вызовы WooCommerce, отключите их, удалив соответствующие скрипты через wp_dequeue_script() или через настройки темы.

Как проверить, что AJAX действительно отключен

  • Добавьте товар в корзину с фронтенда — страница должна перезагрузиться, и корзина обновится без AJAX.
  • В инструментах разработчика на вкладке «Сеть» не должно быть AJAX-запросов с адресом admin-ajax.php при добавлении товара.
  • Мини-корзина не обновляется динамически после добавления товара.
  • Проверьте консоль браузера на отсутствие ошибок.

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

  • Ошибка: Страница не обновляет корзину вообще.
    Причина: Отключен AJAX, но нет перезагрузки страницы.
    Решение: Убедитесь, что кнопка добавления товара не использует AJAX-обработчик и вызывает стандартную отправку формы.
  • Ошибка: После отключения AJAX ломается мини-корзина.
    Причина: Используется кастомный скрипт, завязанный на AJAX.
    Решение: Проверьте и адаптируйте скрипты, отключите их или перепишите под работу без AJAX.
  • Ошибка: Фильтры товаров продолжают работать через AJAX, несмотря на отключение.
    Причина: Фильтры реализованы отдельным плагином с собственным AJAX.
    Решение: Отключайте AJAX в настройках плагина или через его документацию.

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

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

Сравнение способов отключения AJAX в WooCommerce

МетодЧто отключаетПлюсыМинусы
Фильтр woocommerce_add_to_cart_fragmentsОбновление мини-корзины AJAXПросто и быстроМини-корзина не обновляется динамически
Деактивация скрипта wc-cart-fragmentsAJAX для корзины на странице корзиныОтключает AJAX полностью на странице корзиныМожет вызвать перезагрузки и потерю UX
Отключение AJAX в плагинах фильтровAJAX-обновление товаров по фильтрамКонтролируемо через настройки плагинаТребует изучения документации плагина
Оптимальное использование хуков для отложенного запуска кода в WordPress
21.05.2026
Автоматическое удаление заказов WooCommerce по статусу и времени
10.07.2026
Как создать автоматические бэкапы базы данных WordPress без плагинов
15.01.2026
Автоматическое удаление старых товаров WooCommerce при отсутствии наличия
06.07.2026
Как удалить все метаданные WordPress из базы данных
15.12.2025