WooCommerce: не отображается корзина после добавления товара — как исправить

Диагностика проблемы: почему не обновляется корзина в WooCommerce

Проблема с неотображением добавленного товара в корзине — частая ошибка на WooCommerce-сайтах. Пользователь кликает "Добавить в корзину", а количество или содержимое корзины не меняется. Основные причины:

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

Проверка ошибок JavaScript

Откройте консоль браузера (F12 > Console) и попробуйте добавить товар в корзину. Если видите ошибки, например, связанные с jQuery или WooCommerce scripts, это указывает на конфликт.

Проверка включения AJAX добавления в корзину

В WooCommerce AJAX добавление в корзину включено по умолчанию для товаров типа "simple" на страницах архива. Но для отдельных товаров или кастомных шаблонов может быть отключено.

Пошаговое решение: как исправить неотображение корзины после добавления товара

  1. Отключите плагины кеширования и проверьте работу корзины: отключите все кеширующие плагины (WP Super Cache, W3 Total Cache, LiteSpeed Cache и др.), а также кеш на уровне сервера (если доступно), затем очистите кеш и проверьте.
  2. Проверьте тему на конфликт: временно активируйте дефолтную тему (например, Storefront) и проверьте работу корзины. Если проблема исчезла — виновата текущая тема.
  3. Проверьте настройки AJAX для добавления в корзину:
    add_filter('woocommerce_add_to_cart_fragments', 'custom_woocommerce_cart_fragment');
    function custom_woocommerce_cart_fragment( $fragments ) {
        ob_start();
        ?>
        <a class="cart-contents" href="<?php echo wc_get_cart_url(); ?>" title="Корзина">
            <?php echo WC()->cart->get_cart_contents_count(); ?> товаров
        </a>
        <?php
        $fragments['a.cart-contents'] = ob_get_clean();
        return $fragments;
    }
    
    Добавьте этот код в functions.php вашей темы для обновления счетчика товаров в корзине через AJAX.
  4. Проверьте кнопки "Добавить в корзину": убедитесь, что кнопки на страницах архива имеют класс ajax_add_to_cart и используют стандартные хуки WooCommerce.
  5. Отключите конфликтующие скрипты: если ошибки JS связаны с плагинами, отключите их по очереди, чтобы выявить виновника.
  6. Очистите и обновите кеш браузера после внесения изменений.

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

Чтобы проверить, работает ли исправление:

  • Откройте сайт в режиме инкогнито или после очистки кеша браузера.
  • Перейдите на страницу каталога и кликните "Добавить в корзину" у нескольких товаров.
  • Обратите внимание на счетчик в корзине — он должен обновляться без перезагрузки страницы.
  • Откройте консоль браузера — ошибок JavaScript быть не должно.
  • Попробуйте перейти в корзину — добавленные товары должны отображаться.

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

  • Ошибка: Статический счетчик корзины не обновляется.

    Причина: Отсутствует или неправильно реализован фильтр woocommerce_add_to_cart_fragments.

    Решение: Добавьте корректный код обновления фрагментов, как в примере выше.

  • Ошибка: Конфликт JavaScript из-за jQuery, плагинов или темы.
  • Причина: Несовместимость версий скриптов или неправильная загрузка.

    Решение: Обновите плагины/тему, проверьте загрузку jQuery через wp_enqueue_script, отключите конфликтующие плагины.

  • Ошибка: Кеширование страниц блокирует обновление корзины.

    Причина: Плагин кеша или серверный кеш не настроены для исключения страниц корзины, оформления заказа и AJAX-запросов.

    Решение: Настройте исключения в плагинах кеширования и на сервере.

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

  • Не отключайте AJAX полностью — это ухудшит UX и может повысить нагрузку на сервер из-за постоянных перезагрузок.
  • Используйте Child Theme для внесения изменений в functions.php, чтобы сохранить возможность обновления основной темы.
  • Оптимизируйте кеширование: исключайте страницы корзины, оформления заказа и AJAX-запросы из кеша.
  • Минимизируйте количество плагинов, чтобы снизить вероятность конфликтов JavaScript.
  • Проверяйте корректность версий WooCommerce и WordPress, своевременно обновляйте.

Таблица сравнения вариантов решения проблемы с обновлением корзины

МетодПлюсыМинусыКогда использовать
Использование фильтра woocommerce_add_to_cart_fragmentsОбеспечивает обновление корзины без перезагрузкиТребует базовых знаний PHPПри кастомных темах или шаблонах без поддержки AJAX
Отключение кеширования на страницах корзиныПростое решение для устранения проблем с кешемМожет снизить производительность сайтаЕсли кеширование вызывает проблемы с отображением корзины
Отключение конфликтующих плагинов и обновление темыУстраняет конфликты JS и багиТребует времени на диагностикуПри наличии ошибок в консоли браузера
Как автоматически удалять временные файлы в WordPress
09.12.2025
Как использовать WordPress Cron для автоматизации задач
13.12.2025
WooCommerce: как использовать хуки для добавления пользовательских функций
07.05.2026
Как создать динамическую пагинацию в WordPress с помощью AJAX
28.02.2026
Как создать автоматический импорт продуктов в WordPress из CSV с примерами кода
24.12.2025

Уроки со скриншотами, подробные руководства