Как отключить AJAX в WooCommerce на отдельных страницах

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

WooCommerce использует AJAX для динамического обновления корзины, фильтров и некоторых элементов без перезагрузки страницы. Это улучшает UX, но иногда вызывает проблемы совместимости с кастомными скриптами, плагинами или приводит к излишней нагрузке на сервер. Частая задача — отключить AJAX только на отдельных страницах, например, на странице оформления заказа или на страницах с кастомным функционалом.

Как определить страницы с активным AJAX WooCommerce

AJAX в WooCommerce чаще всего задействован в следующих зонах:

  • Обновление мини-корзины (минибаг в шапке сайта)
  • Фильтры товаров на каталоге
  • Обновление корзины на странице /cart и /checkout

Для проверки AJAX-запросов откройте инструменты разработчика в браузере (F12) и вкладку Network. При кликах по фильтрам или добавлении товаров должны появляться запросы с параметром action=woocommerce_update_order_review или похожие.

Пошаговое решение: отключаем AJAX на выбранных страницах

Для отключения AJAX в WooCommerce на конкретных страницах можно использовать фильтр woocommerce_enqueue_checkout_scripts для страницы оформления заказа и условные теги для других страниц.

Пример кода для functions.php вашей темы или дочерней темы:

add_action('wp_enqueue_scripts', 'disable_woocommerce_ajax_on_pages', 99); function disable_woocommerce_ajax_on_pages() {  if (is_checkout() || is_cart()) {    // Отключаем скрипты AJAX корзины и оформления заказа    wp_dequeue_script('wc-cart-fragments');    wp_dequeue_script('woocommerce');    wp_dequeue_script('wc-checkout');  }  if (is_shop() || is_product_category()) {    // Отключаем AJAX фильтров, если используете кастомные решения    wp_dequeue_script('woocommerce');  }}

Этот код отключит AJAX-скрипты на страницах корзины и оформления заказа, а также на каталоге товаров. При необходимости можно расширить условие if под свои страницы с помощью функций is_page() или is_product().

Как отключить AJAX для фильтров на странице каталога

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

wp_dequeue_script('plugin-filter-ajax'); // замените на реальный хендл скрипта

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

  1. Очистите кэш браузера и сайта.
  2. Зайдите на страницу, где отключали AJAX (например, /checkout или /cart).
  3. Включите инструменты разработчика и перейдите в Network.
  4. Выполните действия, которые раньше запускали AJAX (обновление корзины, фильтры).
  5. Убедитесь, что запросы AJAX не выполняются, и страница перезагружается при изменениях.

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

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

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

  • Отключение AJAX снижает нагрузку на сервер, если на сайте много посетителей и AJAX вызывает частые запросы.
  • Всегда тестируйте изменения на staging-сайте, чтобы избежать сломанных процессов оформления заказа.
  • Используйте кеширование и CDN для улучшения производительности при отключённом AJAX.
  • Для тонкой настройки AJAX-поведения WooCommerce и плагинов фильтров используйте их API и фильтры, а не полное отключение скриптов.

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

МетодПреимуществаНедостаткиКогда использовать
Отключение через wp_dequeue_scriptПолный контроль над скриптами, легко реализоватьМожно случайно отключить нужную функциональностьКогда нужно отключить AJAX на конкретных страницах
Использование плагина с настройками отключения AJAXПростой интерфейс, поддержка обновленийЗависимость от стороннего кода, возможные конфликтыДля пользователей без навыков программирования
Кастомизация через хуки и фильтры WooCommerceБолее гибкая и безопасная настройкаТребует понимания внутренней архитектуры WooCommerceДля опытных разработчиков
Удаление заказов WooCommerce по дате и статусу через код
16.05.2026
Как удалить или отключить XML-RPC в WordPress
17.02.2026
Как создать автоматический бэкап WordPress: практическое руководство
28.11.2025
Как избежать проблем с переходами по ссылкам в WordPress
07.02.2026
Как запретить отображение текстового редактора Gutenberg для определённых ролей в WordPress
29.12.2025