wpmoney.ru wordpress WP Money

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

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

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

Чаще всего отключение AJAX-обновления требуется, если после добавления товара в корзину не обновляется виджет корзины или возникают баги в оформлении заказа.

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

  • Проверьте в консоли браузера (F12 → Console) наличие ошибок JavaScript при добавлении товара в корзину.
  • Откройте вкладку Network и посмотрите, отправляются ли AJAX-запросы при изменении количества товара в корзине.
  • Проверьте, обновляется ли содержимое виджета корзины без перезагрузки страницы.
  • Если корзина не обновляется, попробуйте временно переключиться на дефолтную тему WordPress (например, Twenty Twenty-Three) и отключить все плагины кроме WooCommerce – если проблема пропала, причина в теме или конфликте с плагином.

Пошаговое отключение AJAX-обновления корзины в WooCommerce

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

add_filter( 'woocommerce_add_to_cart_fragments', '__return_empty_array' );

Этот фильтр отключает обновление фрагментов (частей) страницы через AJAX, в том числе виджета корзины.

Если нужно отключить именно добавление в корзину через AJAX, используйте следующий код, который убирает скрипт AJAX добавления:

function disable_woocommerce_ajax_add_to_cart() {
    wp_dequeue_script( 'wc-add-to-cart' );
    wp_dequeue_script( 'wc-cart-fragments' );
}
add_action( 'wp_enqueue_scripts', 'disable_woocommerce_ajax_add_to_cart', 99 );

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

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

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

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

  • Ошибка: После отключения AJAX корзина не обновляется автоматически.
    Причина: Кэширование страниц или браузер держит старую версию JS.
    Решение: Очистите кеш плагинов (например, WP Rocket, W3 Total Cache) и браузера, проверьте в режиме инкогнито.
  • Ошибка: Скрипты отключены, но AJAX всё равно работает.
    Причина: Другие плагины или тема подключают свои AJAX-скрипты для корзины.
    Решение: Поиск по коду темы и плагинов на наличие wp_enqueue_script('wc-cart-fragments') и отключение там.
  • Ошибка: Отключение AJAX приводит к ухудшению UX, пользователи жалуются.
    Решение: Рассмотрите исправление конфликта в теме или плагинах, вместо полного отключения AJAX.

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

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

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

МетодКодПлюсыМинусы
Возврат пустых фрагментов
add_filter('woocommerce_add_to_cart_fragments', '__return_empty_array');
Простой, не отключает весь AJAXМожет не отключить все AJAX-операции
Удаление скриптов AJAX
wp_dequeue_script('wc-add-to-cart');
wp_dequeue_script('wc-cart-fragments');
Полностью выключает AJAX корзиныПотеря динамичности, перезагрузка страниц
Исправление конфликтов темы/плагиновПоиск и исправление кодаСохраняет UX, устраняет багиТребует времени и навыков
×

AI-плагин

WPGPT
Сам создает статьи для вашего сайта WordPress

SEO и мета-теги

Парсинг конкурентов

Изображения

Комментарии

Подробнее