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

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

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

Чтобы проверить, что проблема именно в AJAX корзине, можно временно отключить JavaScript в браузере и посмотреть поведение добавления товара — должна происходить полная перезагрузка страницы с обновлением корзины. Если при отключенном JS корзина обновляется корректно, а при включенном — нет, значит AJAX корзина вызывает конфликт.

Как отключить AJAX корзину WooCommerce через тему

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

Шаг 1. Удаление скрипта обновления корзины

В файле functions.php вашей дочерней темы добавьте следующий код, чтобы отменить регистрацию скрипта wc-cart-fragments, который отвечает за AJAX обновление корзины:

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

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

Шаг 2. Изменение шаблона корзины в шапке

Если ваша тема выводит корзину с использованием AJAX, стоит заменить вывод на статичный. Откройте файл темы, где выводится мини-корзина, обычно header.php или отдельный шаблон cart-mini.php, и замените динамический вызов корзины на стандартный PHP:

<?php
if ( function_exists('woocommerce_mini_cart') ) {
    woocommerce_mini_cart();
}
?>

При таком подходе корзина будет обновляться только после перезагрузки страницы.

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

Чтобы убедиться, что AJAX корзина отключена:

  • Добавьте товар в корзину на сайте в режиме инкогнито.
  • Обратите внимание, происходит ли перезагрузка страницы — если да, AJAX отключен.
  • Проверьте отображение количества товаров в корзине — оно должно обновляться после перезагрузки.
  • В консоли браузера (F12 > Console) не должно быть ошибок, связанных с wc-cart-fragments.

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

1. Отключение скрипта не срабатывает

Причина: код добавлен с приоритетом ниже 11 или в неправильном хуке. Решение: проверьте, что add_action используется именно с 11 приоритетом и в wp_enqueue_scripts.

2. После отключения AJAX корзина не обновляется

Причина: отсутствует перезагрузка страницы или кэширование. Решение: очистите кэш браузера и серверный кэш, убедитесь, что на сайте нет агрессивных кэширующих плагинов.

3. Мини-корзина не отображается

Причина: шаблон темы не содержит вызов woocommerce_mini_cart(). Решение: добавьте вызов функции в нужное место темы.

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

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

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

МетодОписаниеПлюсыМинусы
Код в functions.php (wp_dequeue_script) Отключение скрипта wc-cart-fragments Простой, не требует плагинов, полный контроль Может повлиять на другие AJAX функции WooCommerce
Плагин для отключения AJAX корзины Использование готового плагина (например, Disable AJAX Cart) Удобно, быстро, поддержка обновлений Дополнительная нагрузка, зависит от стороннего кода
Изменение шаблонов темы Удаление AJAX вызовов в шаблонах Гибкий контроль, можно кастомизировать вывод Требует навыков PHP, риск ошибок в шаблонах

Чек-лист для отключения AJAX корзины WooCommerce

  • Добавьте код для dequeue скрипта в functions.php с правильным приоритетом
  • Проверьте вывод мини-корзины в шаблонах темы
  • Очистите кэш сайта и браузера
  • Проверьте работу корзины в режиме инкогнито
  • Убедитесь в отсутствии ошибок в консоли браузера
  • Тестируйте на разных устройствах и браузерах
  • При необходимости используйте дочернюю тему для безопасных изменений
Уникальные метки для тем в WordPress: создание и применение
18.02.2026
Как создать адаптивную тему WordPress с нуля
31.10.2025
Как создать вывод тематических блоков в теме WordPress с фильтрацией и примерами кода
27.03.2026
Как добавить поддержку WebP в теме WordPress
12.01.2026
Как удалить CSS и JS из отдельных страниц WordPress для оптимизации
08.02.2026