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

|

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

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

Проверьте консоль браузера (F12 > Console) на наличие ошибок JavaScript при использовании фильтров или пагинации. Также обратите внимание на правильность обновления URL и содержимого каталога.

Пошаговое решение: отключаем AJAX-загрузку товаров

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

1. Отключение AJAX-подгрузки на странице магазина и архивов

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

function disable_woocommerce_ajax_catalog() {
    // Удаляем поддержку AJAX в виджетах фильтра по цене
    remove_action('wp_enqueue_scripts', array(WC()->widget_factory->widgets['WC_Widget_Price_Filter'], 'enqueue_ajax_script'));

    // Отключаем AJAX в виджете фильтра по цене
    add_filter('woocommerce_price_filter_widget_use_ajax', '__return_false');

    // Отключаем AJAX-пагинацию
    add_filter('woocommerce_product_filters_ajax_enabled', '__return_false');
}
add_action('wp_loaded', 'disable_woocommerce_ajax_catalog');

Этот код отключит AJAX-загрузку в виджетах фильтров и пагинации.

2. Отключение AJAX в кастомных плагинах и темах

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

Например, если в вашей теме есть скрипт ajax-shop.js, отключите его в functions.php:

function dequeue_ajax_shop_script() {
    wp_dequeue_script('ajax-shop');
}
add_action('wp_enqueue_scripts', 'dequeue_ajax_shop_script', 20);

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

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

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

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

Решение: используйте плагин Query Monitor для выявления подключаемых скриптов и отключайте их с помощью wp_dequeue_script.

2. Фильтры товаров не работают после отключения AJAX

Причина: фильтры настроены только на работу с AJAX и не поддерживают стандартную перезагрузку страниц.

Решение: проверяйте совместимость темы и плагинов с обычной фильтрацией. Возможно, потребуется доработка шаблонов WooCommerce.

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

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

МетодОписаниеПлюсыМинусы
Удаление AJAX-поддержки через хуки WooCommerceОтключение AJAX в стандартных фильтрах и пагинацииПростая реализация, не требует изменений в JSМожет не отключить кастомные AJAX-скрипты
Отключение кастомных AJAX-скриптовДеактивация JS-файлов темы или плагиновПолный контроль над AJAXТребует анализа и тестирования, может привести к потере функционала
Использование плагинов для управления AJAXПлагины с настройками AJAXГибкие настройки без кодаЗависимость от сторонних решений, нагрузка на сайт
Как создать автоматический импорт продуктов в WooCommerce из CSV файла
09.04.2026
Как использовать фильтры для автоматического изменения заказов WooCommerce
07.05.2026
Как сделать автоматический импорт данных в WordPress из Excel с примерами кода
30.01.2026
Как использовать REST API WooCommerce для автоматизации обработки заказов
30.04.2026
Как автоматизировать управление комментариями в WordPress: практическое руководство с примерами кода
25.01.2026
×

AI-плагин от WPShop.ru

анализирует конкурентов

пишет статьи

готовит SEO

генерирует изображения

и еще кое-что...
WPGPT
Плагин, который наполняет ваш сайт WordPress
Узнать больше