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

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

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

  • неправильное обновление корзины;
  • ошибки в консоли браузера, связанные с AJAX-запросами;
  • конфликты с кастомным JavaScript;
  • повышенная нагрузка на сервер;
  • проблемы с кэшированием страниц.

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

Что именно использует AJAX в WooCommerce?

Основные AJAX-функции WooCommerce включают:

  • Обновление мини-корзины (fragment refresh) — автоматически обновляет корзину в шапке сайта при добавлении товаров.
  • Фильтры товаров и сортировка с применением AJAX.
  • Обновление количества товаров в корзине без перезагрузки страницы.
  • Пагинация и бесконечный скролл товаров.

Отключать AJAX стоит выборочно, чтобы не сломать ключевые функции.

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

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

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

add_filter('woocommerce_add_to_cart_fragments', '__return_empty_array');

Этот фильтр отменяет обновление мини-корзины через AJAX, что уменьшит количество AJAX-запросов.

2. Отключение AJAX добавления товара в корзину на страницах архивов

По умолчанию кнопка "Добавить в корзину" на страницах товаров использует AJAX. Отключение делается так:

function disable_ajax_add_to_cart() {
    if (is_shop() || is_product_category() || is_product_tag()) {
        wp_dequeue_script('wc-add-to-cart');
    }
}
add_action('wp_enqueue_scripts', 'disable_ajax_add_to_cart', 99);

Этот код отключит скрипт добавления в корзину через AJAX на страницах каталога, что заставит браузер перезагружать страницу при добавлении.

3. Отключение AJAX фильтров и пагинации

Если вы используете кастомные фильтры или темы, которые применяют AJAX для фильтрации, придется отключать их индивидуально. Например, для темы Storefront можно отключить AJAX пагинацию так:

add_filter('storefront_woocommerce_is_active', '__return_false');

Или убрать AJAX в плагинах фильтров, изучив их документацию.

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

  1. Очистите кеш браузера и сайта.
  2. Откройте страницу каталога товаров, попробуйте добавить товар в корзину — страница должна обновляться полностью.
  3. Проверьте обновление мини-корзины — она не должна обновляться автоматически без перезагрузки.
  4. Проверьте консоль браузера на отсутствие ошибок AJAX.
  5. Убедитесь, что фильтры и пагинация работают без AJAX (перезагружают страницу).

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

  • Мини-корзина не обновляется после добавления товара. Решение: проверьте, что не отключили скрипт wc-cart-fragments.js полностью. Используйте фильтр woocommerce_add_to_cart_fragments, а не dequeue скриптов.
  • Кнопка "Добавить в корзину" не работает. Частая причина — отключение скрипта wc-add-to-cart на страницах, где он нужен. Проверьте условие в функции отключения.
  • Фильтры не применяются или пагинация ломается. Убедитесь, что отключаете AJAX только для нужных элементов, а не глобально.

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

  • Отключение AJAX снижает нагрузку на сервер, но увеличивает количество полных перезагрузок страниц, что может замедлить UX.
  • При отключении AJAX убедитесь, что все формы и действия защищены nonce для предотвращения CSRF-атак.
  • Если AJAX конфликтует с кеширующими плагинами, рассмотрите тонкую настройку кеша, а не полное отключение AJAX.
  • Для оптимизации загрузки скриптов используйте условные загрузки — подключайте скрипты только там, где нужны.

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

МетодПреимуществаНедостатки
Фильтр woocommerce_add_to_cart_fragmentsПростой, не ломает кнопки, снижает AJAX-запросыМини-корзина обновляется только после перезагрузки
Отключение скрипта wc-add-to-cartПолное отключение AJAX добавления товаровТребует перезагрузки страниц, возможны ошибки при неверном условии
Отключение AJAX фильтров и пагинацииИзбавляет от конфликтов с кастомными скриптамиЗависит от темы и плагинов, требует индивидуальной настройки
Как добавить авторизацию через Google в WordPress
14.03.2026
Как использовать WPCommunity для создания форума на WordPress
24.01.2026
Как использовать WPCommunity для создания приватных клубов на WordPress
31.03.2026
Как использовать WPRemark для автоматической оценки контента в WordPress
28.01.2026
Автоматическое создание миниатюр из видео в WordPress
13.04.2026

Ниже мы подобрали самые актуальные материалы по Вордпресс