WooCommerce AJAX обновление корзины без перезагрузки страницы: практическое руководство

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

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

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

Если после добавления товара в корзину количество и сумма не изменяются без перезагрузки страницы, значит AJAX-обновление не работает. Проверьте:

  • Используется ли стандартный шаблон WooCommerce, или тема/плагины переопределяют его.
  • Подключен ли скрипт wc-cart-fragments, отвечающий за обновление фрагментов корзины.
  • Нет ли конфликтов JavaScript в консоли браузера (F12 → Console).
  • Не отключен ли AJAX в настройках темы или плагинах.

Пошаговое решение: включаем AJAX обновление корзины

1. Проверка подключения скриптов WooCommerce

В файле functions.php вашей темы или дочерней темы убедитесь, что не отключаете стандартные скрипты WooCommerce:

add_action('wp_enqueue_scripts', function() {
    // Не отключайте wc-cart-fragments
    // Если отключали, закомментируйте или удалите такую строку:
    // wp_dequeue_script('wc-cart-fragments');
});

2. Добавление AJAX обновления корзины в шапку сайта

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

jQuery(function($) {
    $('body').on('added_to_cart', function() {
        // Обновление виджетов корзины
        $.ajax({
            url: wc_cart_fragments_params.wc_ajax_url.toString().replace('%%endpoint%%', 'get_refreshed_fragments'),
            type: 'POST',
            success: function(data) {
                if (data && data.fragments) {
                    $.each(data.fragments, function(key, value) {
                        $(key).replaceWith(value);
                    });
                }
            }
        });
    });
});

3. Проверка темы на переопределение шаблонов корзины

В папке темы проверьте наличие файлов woocommerce/cart/ и woocommerce/cart-fragments.php. Если они есть, временно переименуйте папку woocommerce в woocommerce_backup и проверьте работу AJAX на стандартных шаблонах WooCommerce.

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

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

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

  • Отсутствие скрипта wc-cart-fragments: если скрипт отключен, AJAX не сработает. Проверьте и не отключайте его.
  • Конфликты JavaScript: другие плагины или кастомный код могут вызывать ошибки. Проверяйте консоль и отключайте конфликтующие плагины.
  • Переопределённые шаблоны WooCommerce: тема может использовать устаревшие или несовместимые шаблоны. Тестируйте с дефолтной темой Storefront.
  • Кэширование страниц: агрессивное кэширование может мешать работе AJAX. Исключите страницы с корзиной и добавлением в корзину из кэша.

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

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

Сравнение способов реализации обновления корзины

МетодПреимуществаНедостатки
Стандартный скрипт wc-cart-fragmentsПрост в использовании, поддерживается WooCommerceМожет конфликтовать с кастомными темами
Кастомный AJAX код (как в статье)Гибкость, можно расширятьТребует поддержки и тестирования
Плагины для AJAX корзиныПростой запуск, готовые функцииМожет замедлять сайт, дополнительные зависимости
Как запретить индексацию страниц меток в WordPress без удаления самих меток
31.08.2026
Как использовать хуки в WordPress для расширения функциональности
03.10.2026
Как закрыть страницы внутреннего поиска WordPress от индексации без лишних дублей
26.08.2026
Как добавить автоматическое сохранение данных в формах WordPress
28.09.2026
Как отключить XML-RPC на уровне .htaccess и проверить, что сайт не ломается
01.10.2026
×
-15%
на премиум-тему
Bono

Создай магазин мечты
на WordPress!

↓ ↓ ↓ ↓ ↓
Купить со скидкой »