Как отключить AJAX в WooCommerce без плагинов

Почему стоит отключить AJAX в WooCommerce

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

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

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

По умолчанию WooCommerce использует AJAX для кнопки "Добавить в корзину" на страницах архивов (каталогах). Чтобы отключить эту функцию, достаточно добавить следующий код в файл functions.php вашей дочерней темы или в свой плагин:

function wptemy_disable_ajax_add_to_cart() {
    // Удаляем скрипт, отвечающий за AJAX добавление в корзину
    wp_dequeue_script('wc-add-to-cart');
}
add_action('wp_enqueue_scripts', 'wptemy_disable_ajax_add_to_cart', 100);

Этот код отключит AJAX для кнопок "Добавить в корзину" на страницах архивов и заставит их работать как обычные формы с перезагрузкой страницы.

Проверка результата

После добавления кода нужно очистить кеш браузера и кеш сайта (если есть). При нажатии на кнопку "Добавить в корзину" страница должна перезагружаться, и товар добавляться в корзину классическим способом.

Отключение AJAX обновления корзины и мини-корзины

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

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

Скрипт wc-cart-fragments отвечает за динамическое обновление мини-корзины без перезагрузки страницы. После удаления этого скрипта корзина будет обновляться только при полной перезагрузке.

Что важно знать

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

Отключение AJAX фильтров и пагинации в WooCommerce

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

Для этого:

  1. Определите, какой скрипт отвечает за AJAX пагинацию (например, в консоли браузера или коде темы).
  2. Удалите этот скрипт с помощью wp_dequeue_script().
  3. Замените кнопки пагинации на классические ссылки с параметрами paged.

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

function wptemy_disable_custom_ajax_pagination() {
    wp_dequeue_script('theme-ajax-pagination'); // замените на реальный хендл скрипта
}
add_action('wp_enqueue_scripts', 'wptemy_disable_custom_ajax_pagination', 20);

Использование плагинов для контроля AJAX в WooCommerce

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

Это особенно полезно, если вы не хотите редактировать темы и боитесь сломать функционал.

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

1. Обязательно делайте резервные копии сайта перед внесением изменений.

2. Тестируйте на тестовом сайте, чтобы избежать ошибок на живом проекте.

3. Анализируйте, какие именно AJAX функции создают проблемы — возможно, достаточно отключить только часть из них.

4. Используйте инструменты разработчика браузера, чтобы отслеживать загружаемые скрипты и запросы AJAX.

Заключение

Отключение AJAX в WooCommerce без плагинов — задача вполне выполнимая и часто необходимая для решения конфликтов и повышения стабильности сайта. С помощью простых функций WordPress вы можете убрать AJAX для добавления в корзину, обновления мини-корзины и других элементов. Однако не забывайте, что AJAX улучшает UX, и отключать его стоит только при реальной необходимости. Если нужны более тонкие настройки — рассмотрите использование Clearfy Pro или подобных инструментов.

Как сохранить форматирование в текстовом редакторе WordPress
29.01.2026
Как использовать хуки для отрывных настроек в WordPress
05.01.2026
Как изменить URL адрес постов в WordPress без пересмотра ссылок
09.11.2025
Как использовать WPRemark для отзывов в WordPress
15.01.2026
Как удалить meta robots noindex для отдельных страниц WordPress
05.01.2026