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

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

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

Чтобы понять, действительно ли проблема связана с AJAX, выполните следующие шаги:

  • Отключите все сторонние плагины, кроме WooCommerce, и переключитесь на стандартную тему WordPress (например, Twenty Twenty-Three). Если проблема исчезла, вероятно, конфликт вызван взаимодействием AJAX с плагинами или темой.
  • Используйте инструменты разработчика браузера (вкладка Network), чтобы отследить AJAX-запросы и ошибки JavaScript.
  • Проверьте консоль браузера на предмет ошибок, связанных с AJAX.

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

WooCommerce использует AJAX в нескольких местах, основные из которых:

  • Обновление мини-корзины (мини-карточки корзины в хедере)
  • Обновление страниц архивов товаров с фильтрами и сортировкой
  • Обновление кнопки «Добавить в корзину» на страницах товаров

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

function disable_woocommerce_ajax() {
  // Отключаем мини-корзину AJAX
  wp_dequeue_script('wc-cart-fragments');
  
  // Отключаем AJAX добавление в корзину для архивов
  remove_action('wp_footer', 'woocommerce_frontend_scripts', 10);
  
  // Отключаем AJAX обновление сортировки и фильтров (если используется AJAX)
  // Нужно проверять, нет ли плагинов, которые добавляют свои AJAX-запросы
}
add_action('wp_enqueue_scripts', 'disable_woocommerce_ajax', 99);

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

Отключение AJAX на кнопках «Добавить в корзину»

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

function disable_ajax_add_to_cart_class( $classes ) {
    // Убираем класс, который включает AJAX добавление в корзину
    $classes = array_diff( $classes, array( 'ajax_add_to_cart' ) );
    return $classes;
}
add_filter( 'woocommerce_product_add_to_cart_classes', 'disable_ajax_add_to_cart_class' );

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

После внедрения кода:

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

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

  • Ошибка: Мини-корзина не обновляется после добавления товара.
    Причина: Скрипт wc-cart-fragments отключён, но корзина не перезагружается.
    Решение: Пользователь должен обновить страницу вручную или добавить кнопку/ссылку для обновления.
  • Ошибка: AJAX всё ещё работает на страницах фильтров.
    Причина: Плагины фильтрации товаров могут добавлять свои AJAX-запросы.
    Решение: Проверьте и отключите AJAX в настройках соответствующих плагинов или удалите их скрипты аналогично.
  • Ошибка: Кнопка «Добавить в корзину» не реагирует.
    Причина: Неправильное удаление классов или скриптов.
    Решение: Проверьте, что удалён только класс ajax_add_to_cart, и что кнопка корректно вызывает стандартное добавление.

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

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

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

МетодПрименениеПлюсыМинусы
Отключение скриптов через wp_dequeue_scriptПрямое отключение AJAX мини-корзиныПростота, быстрое отключениеМожет повлиять на другие функции, требующие AJAX
Удаление класса ajax_add_to_cartОтключение AJAX добавления товаровЛокальное отключение, не ломает другие AJAXТребует дополнительного тестирования
Отключение через настройки плагинов фильтрацииОтключение AJAX фильтровГибкость, сохраняет другие AJAXЗависит от функционала плагина
Исправление дублирующихся SKU в WooCommerce: поиск и устранение ошибок
28.04.2026
Отчетность WordPress по типам записей: настройка и примеры
13.12.2025
Как избежать проблем с разносистемными скриптами в WooCommerce
27.05.2026
Как использовать хуки WooCommerce для добавления дополнительного функционала
07.05.2026
Как избежать проблем с отключением AJAX в WooCommerce
21.02.2026