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

Почему стоит отключить AJAX на страницах корзины и оформления заказа WooCommerce?

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

Отключение AJAX на этих страницах позволяет снизить количество запросов к серверу и уменьшить количество ошибок, связанных с динамическим обновлением контента.

Диагностика проблемы: как понять, что AJAX вызывает замедление или ошибки

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

Пошаговое отключение AJAX в WooCommerce на нужных страницах

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

add_filter('woocommerce_add_to_cart_fragments', '__return_empty_array');

function disable_wc_ajax_cart() {
    if (is_cart() || is_checkout()) {
        wp_dequeue_script('wc-cart-fragments');
    }
}
add_action('wp_enqueue_scripts', 'disable_wc_ajax_cart', 99);

Объяснение кода:

  • woocommerce_add_to_cart_fragments отвечает за обновление фрагментов корзины через AJAX — возвращаем пустой массив, чтобы отключить обновление.
  • Функция disable_wc_ajax_cart отключает скрипт wc-cart-fragments только на страницах корзины и оформления заказа.

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

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

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

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

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

  • Отключайте AJAX только на страницах, где это действительно необходимо — корзина и оформление заказа.
  • Используйте плагин кэширования, который корректно работает с WooCommerce и исключает страницы корзины и оформления заказа из кэширования.
  • Регулярно проверяйте консоль браузера на JavaScript-ошибки после изменений.
  • Для улучшения UX используйте минимальное количество кастомных скриптов на страницах оформления заказа.

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

МетодОписаниеПлюсыМинусы
Отключение скрипта wc-cart-fragmentsУдаление загрузки скрипта AJAX обновления корзиныПростое решение, уменьшение запросовПотеря динамического обновления, возможен дискомфорт для пользователя
Кастомизация AJAX через JavaScriptИзменение поведения AJAX, например, замена на менее ресурсоёмкий кодСохраняется динамичность, можно оптимизировать под задачиТребует глубокого анализа и тестирования
Оставить как естьИспользовать стандартный функционал WooCommerceМаксимальная совместимость, удобство для пользователяВозможные проблемы с производительностью и конфликтами
Как создать автоматическое отправление отзывов на WordPress
20.12.2025
Как удалить обсуждения и комментарии на отдельных страницах WordPress
24.12.2025
Как использовать хуки в WordPress для настройки темы: практические примеры
20.11.2025
Как удалить все продажи WooCommerce по дате и статусу
29.04.2026
Как избежать проблем с совместимостью плагинов WooCommerce
26.04.2026