Как удалить или отключить AJAX обновления корзины WooCommerce для ускорения сайта

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

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

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

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

  • Проверьте в консоли браузера (F12 > Console) наличие ошибок JavaScript при добавлении товаров в корзину.
  • На сервере проанализируйте логи ошибок и нагрузку в момент изменения корзины.
  • Используйте инструменты профилирования запросов, например Query Monitor, чтобы увидеть количество AJAX-запросов к серверу.
  • Проверьте, не конфликтуют ли скрипты AJAX с другими плагинами или темой.

Как отключить AJAX обновления корзины в WooCommerce

Отключение AJAX добавления в корзину для архивных страниц

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

function disable_ajax_add_to_cart() {
    if ( class_exists( 'WooCommerce' ) ) {
        wp_dequeue_script( 'wc-add-to-cart' );
    }
}
add_action( 'wp_enqueue_scripts', 'disable_ajax_add_to_cart', 99 );

Этот код удалит скрипт, ответственный за AJAX добавление товаров из архивов.

Отключение AJAX обновления мини-корзины

Мини-корзина на сайте также обновляется через AJAX. Чтобы отключить это, можно убрать фильтр, который добавляет AJAX обновление. Добавьте в functions.php:

add_filter( 'woocommerce_widget_cart_is_hidden', '__return_true' );

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

Отключение AJAX обновления корзины на странице корзины

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

add_action( 'wp_enqueue_scripts', 'disable_wc_cart_fragments', 11 );
function disable_wc_cart_fragments() {
    wp_dequeue_script( 'wc-cart-fragments' );
}

Это отключит скрипт, который отвечает за фрагменты корзины, включая обновление мини-корзины и счетчика в шапке.

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

  • Очистите кеш браузера и сайта (если используется кеширование).
  • Перейдите на страницу с товарами, попробуйте добавить товар в корзину и посмотрите, происходит ли перезагрузка страницы.
  • Проверьте, что мини-корзина и счетчик в шапке обновляются корректно (после перезагрузки страницы).
  • В консоли браузера не должно быть ошибок, связанных с wc-add-to-cart или wc-cart-fragments.
  • Используйте инструменты профилирования (Query Monitor) для оценки снижения AJAX-запросов.

Частые ошибки при отключении AJAX обновления корзины WooCommerce

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

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

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

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

МетодПлюсыМинусыКомпромисс
Удаление скриптов через wp_dequeue_scriptПростота, быстрое отключение AJAXМожет сломать интерактивность корзиныИспользовать только если сайт малонагруженный
Переопределение шаблонов мини-корзиныКонтроль над функционалом, можно сохранить внешний видТребует навыков PHP и WP-шаблоновРекомендуется для опытных разработчиков
Использование фильтров WooCommerceГибкость и совместимостьНе всегда отключает все AJAX-запросыКомбинировать с другими методами
Как избежать проблем с миграцией сайта WordPress на новый домен
17.02.2026
Как удалить атрибуты style и script в WordPress для улучшения безопасности и производительности
25.11.2025
Как автоматически удалять неактивные продукты в WooCommerce
03.05.2026
Как избежать повторов постов в WordPress
07.01.2026
Автоматическое удаление старых черновиков и ревизий в WordPress
08.11.2025