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

Проблема: замедленная загрузка и некорректная работа AJAX в WooCommerce

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

Как диагностировать проблему с AJAX в WooCommerce

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

Пошаговое решение: отключение AJAX на страницах Корзины и Оформления заказа

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

<?php
add_action('wp_enqueue_scripts', 'disable_woocommerce_ajax_on_cart_checkout', 99);
function disable_woocommerce_ajax_on_cart_checkout() {
    if (is_cart() || is_checkout()) {
        // Отключаем скрипт wc-cart-fragments.js, управляющий AJAX фрагментами корзины
        wp_dequeue_script('wc-cart-fragments');
        // Отключаем скрипт wc-checkout.js для AJAX на странице оформления заказа
        wp_dequeue_script('wc-checkout');
    }
}
?>

Этот код нужно добавить в файл functions.php вашей дочерней темы или в плагин для сниппетов.

Как это работает

  • wc-cart-fragments отвечает за автоматическое обновление количества товаров в корзине через AJAX.
  • wc-checkout управляет AJAX-запросами на странице оформления заказа.
  • Удаляя эти скрипты на страницах is_cart() и is_checkout(), мы отключаем AJAX-обновления.

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

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

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

  • Код не работает: Проверьте правильность добавления кода и приоритет хука (99 нужен для гарантированного отключения скриптов после их подключения).
  • Проблемы с кэшированием: Очистите кэш браузера и плагинов кэширования (например, WP Rocket, W3 Total Cache).
  • Влияние на пользовательский опыт: Отключение AJAX убирает динамичность обновления корзины — удостоверьтесь, что это приемлемо для вашего сайта.
  • Конфликт с кастомными скриптами: Если у вас есть свои JS-обработчики, которые завязаны на AJAX WooCommerce, их нужно адаптировать.

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

  • Отключайте AJAX только там, где это необходимо. На других страницах, например в виджете корзины, лучше оставить динамическое обновление.
  • Используйте инструменты профилирования (Query Monitor, New Relic) для оценки влияния отключения на производительность.
  • Рассмотрите возможность оптимизации темы и плагинов, если AJAX тормозит из-за конфликтов.
  • При необходимости используйте специализированные плагины для управления скриптами, например Clearfy Pro (https://wpshop.ru/plugins/clearfy?utm_source=wpdeveloper.ru&utm_medium=article&utm_campaign=kak-avtomaticheski-otkljuchit-ajax-v-woocommerce-na-stranicah-korziny-i-oformleniya-zakaza) для тонкой настройки и отключения ненужных скриптов.

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

МетодПлюсыМинусыКомпромисс
Отключение скриптов через wp_dequeue_scriptПростота и контроль на уровне кода
Не требует дополнительных плагинов
Потеря динамичности обновления корзины и оформления заказа
Возможны ошибки в кастомных скриптах
Использовать только на страницах Корзины и Оформления заказа
Плагины для управления скриптами (например, Clearfy Pro)Графический интерфейс
Дополнитель функции оптимизации
Платные решения
Может быть избыточно для простой задачи
Использовать при комплексной оптимизации сайта
Полное отключение AJAX в WooCommerce через фильтры и хукиПолный контроль, настраиваемое поведениеСложность реализации
Требует глубоких знаний WooCommerce
Подходит для сложных кастомизаций
Как отладить проблемы со стилями в WordPress: пошаговое руководство
17.02.2026
Как создать автоматические уведомления в WordPress по событиям с помощью WPRemark
04.03.2026
Как автоматически отключить внутреннее кэширование в WooCommerce для страниц регистрации и входа
09.07.2026
Удаление продаж WooCommerce по дате и статусу: пошаговое руководство
22.04.2026
Как запретить доступ к административной панели WordPress по IP
09.04.2026