WooCommerce: как автоматически отключить AJAX-подгрузку корзины для улучшения производительности

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

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

Чтобы проверить, тормозит ли AJAX-подгрузка корзины ваш сайт, оцените следующие признаки:

  • Длительное время загрузки страниц с товарами
  • Проблемы с кэшированием страниц (например, корзина не обновляется корректно)
  • Высокая нагрузка на сервер при большом числе пользователей

Для точной диагностики используйте инструменты браузера (Chrome DevTools) во вкладке Network. Обратите внимание на запросы к /?wc-ajax=get_refreshed_fragments. Частые и тяжелые запросы указывают на необходимость оптимизации.

Как отключить AJAX-подгрузку корзины в WooCommerce программно

Обычный способ отключить AJAX-подгрузку корзины — убрать соответствующий скрипт и фильтровать фрагменты. Делать это нужно аккуратно, чтобы не нарушить работу корзины и оформления заказа.

Пошаговое решение

  1. Добавьте следующий код в файл functions.php вашей дочерней темы или лучше в небольшой плагин для кастомных функций:
add_action('wp_enqueue_scripts', 'disable_woocommerce_cart_fragments', 11);
function disable_woocommerce_cart_fragments() {
    if (class_exists('WooCommerce')) {
        // Удаляем скрипт обновления корзины
        wp_dequeue_script('wc-cart-fragments');
        wp_deregister_script('wc-cart-fragments');
    }
}
  1. Отключение скрипта предотвратит AJAX-запросы, но кнопка и обновление количества товаров будут работать с полной перезагрузкой страницы.
  2. Проверьте, нет ли кастомных плагинов или тем, которые повторно подключают этот скрипт — отключите или адаптируйте их.

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

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

  • Откройте страницу с товарами и добавьте товар в корзину.
  • Обратите внимание, что корзина обновится только после полной перезагрузки страницы.
  • В инструментах разработчика (Network) убедитесь, что запросы к wc-ajax=get_refreshed_fragments отсутствуют.

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

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

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

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

Сравнение вариантов отключения AJAX-подгрузки корзины

МетодПлюсыМинусыРекомендации
Отключение скрипта wc-cart-fragmentsПростое решение, снижает нагрузкуОбновление корзины требует перезагрузки страницыПодходит для сайтов с низкой интерактивностью корзины
Настройка кэширования исключая AJAX-запросыСохраняется UX, высокая производительностьСложнее настроить, требует знаний кэшированияРекомендуется для магазинов с высоким трафиком
Использование сторонних плагинов оптимизацииАвтоматизация и дополнительные функцииМожет конфликтовать, требует тестированияУдобно, если интеграция проверена

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

  • Добавлен код отключения скрипта wc-cart-fragments в functions.php
  • Проверено отсутствие AJAX-запросов для обновления корзины в DevTools
  • Проверена корректная работа кнопок добавления товаров с полной перезагрузкой
  • Проверено отсутствие JS-ошибок в консоли браузера
  • Проверены сторонние плагины на предмет повторного подключения скриптов
  • Тестирование функционала на разных устройствах и браузерах
Как создать собственный шорткод в WordPress
04.11.2025
Как использовать WPCommunity для создания форума на WordPress
10.04.2026
Как удалить или изменить атрибуты товаров WooCommerce через функции
11.05.2026
Как использовать хуки в WordPress: подробное руководство с примерами
26.11.2025
WooCommerce: как реализовать авторизацию пользователя по ссылке без пароля
11.07.2026