Как отключить AJAX в WooCommerce: практические способы

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

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

Как проверить, что AJAX работает и где он задействован

  • Откройте консоль браузера (F12 → Console) и перейдите на страницы с функциями WooCommerce, например, страницу магазина или корзины.
  • Обратите внимание на сетевые запросы (Network), фильтруя по XHR — если при кликах обновляется корзина или фильтры — используется AJAX.
  • Проверьте, влияет ли AJAX на SEO (например, Google Search Console может показать проблемы с индексированием динамического контента).

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

1. Отключение AJAX при добавлении товара в корзину

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

add_filter('woocommerce_add_to_cart_fragments', '__return_empty_array', 99);

Этот фильтр предотвращает обновление фрагментов корзины через AJAX, но сам AJAX-запрос всё ещё может срабатывать. Для полного отключения лучше убрать класс ajax_add_to_cart с кнопок:

function disable_ajax_add_to_cart() {
    remove_action( 'wp_footer', 'woocommerce_add_to_cart_fragments', 20 );
    // Удаление класса ajax_add_to_cart
    add_filter('woocommerce_loop_add_to_cart_link', function($html){
        return str_replace('ajax_add_to_cart', '', $html);
    });
}
add_action('init', 'disable_ajax_add_to_cart');

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

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

add_action('wp_enqueue_scripts', function() {
    wp_dequeue_script('wc-add-to-cart'); // Удаляет AJAX скрипт добавления в корзину
}, 99);

Однако это решение грубое, и может повлиять на другие AJAX функции WooCommerce.

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

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

Частые ошибки при отключении AJAX и как их исправить

  • Продукты не добавляются в корзину: Возможно, остался JS код, ожидающий AJAX, или кнопки не обновлены. Проверьте, что класс ajax_add_to_cart удалён.
  • Ошибка 404 при добавлении в корзину: Проверьте, что ссылка добавления товара корректна и ведёт на страницу с параметром add-to-cart=ID.
  • Проблемы с кэшированием: Отключение AJAX может повлиять на кэширование страниц, так как теперь контент обновляется полной перезагрузкой — настройте кэш правильно.

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

  • Отключение AJAX уменьшит нагрузку на сервер от частых запросов, но увеличит трафик за счёт полной перезагрузки страниц.
  • Если AJAX используется для динамического обновления корзины, отключение может ухудшить UX — взвесьте необходимость.
  • Используйте плагины, например Clearfy Pro, чтобы управлять AJAX функциями и оптимизировать сайт.

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

МетодПлюсыМинусыПример использования
Удаление класса ajax_add_to_cartПростота, минимальные измененияНе отключает все AJAX-запросыФильтр woocommerce_loop_add_to_cart_link
Отключение скриптов AJAX через wp_dequeue_scriptПолное отключение AJAXМожет сломать другие функции WooCommerceДеактивация wc-add-to-cart
Использование настроек плагинов или темыУдобство, поддержкаМожет быть недоступноОпции плагинов фильтров
Как избежать проблемы с передачей данных в WordPress: практические советы
18.03.2026
Автоматическое удаление незаконченных заказов WooCommerce по срокам и статусу
03.07.2026
Как установить и настроить WooCommerce для начинающих
22.11.2025
Как создать простой визуальный композитор в WordPress с примерами кода
17.11.2025
Оптимизация памяти WordPress: эффективные методы и примеры с wpstandart
10.12.2025