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

|

AJAX-подгрузка товаров в WooCommerce удобна до тех пор, пока не начинает мешать: фильтры срабатывают не так, пагинация дублируется, счётчики не обновляются, а сторонние скрипты цепляются к старому DOM. В таких случаях задача обычно не в том, чтобы «сломать AJAX везде», а в том, чтобы отключить его в конкретном месте и проверить, что каталог продолжает работать предсказуемо.

Когда AJAX-подгрузка действительно мешает

Чаще всего проблема проявляется в каталоге, где тема или плагин подменяет стандартную навигацию WooCommerce на динамическую загрузку. Это удобно для UX, но конфликтует с:

Типичные симптомы

Если AJAX-подгрузка виновата, обычно видно одно или несколько из этих проявлений: после фильтрации URL меняется, но список товаров остаётся прежним; кнопка «Показать ещё» добавляет товары, но пагинация ведёт себя непоследовательно; часть карточек исчезает после сортировки; в консоли появляются ошибки JavaScript, связанные с элементами, которых уже нет в DOM.

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

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

Что проверить в админке и коде

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

add_action( 'wp_enqueue_scripts', function() {
    if ( is_shop() || is_product_taxonomy() ) {
        wp_enqueue_script(
            'theme-product-ajax',
            get_stylesheet_directory_uri() . '/assets/js/product-ajax.js',
            array( 'jquery' ),
            '1.0.0',
            true
        );
    }
} );

Это не означает, что AJAX надо отключать глобально. Но если проблема возникает только на страницах категории товаров, можно ограничить его именно там.

Как отключить AJAX-загрузку товаров точечно

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

1. Отключение в настройках темы или плагина

Если AJAX включён в настройках темы, это лучший вариант. Обычно достаточно снять галочку у опции вроде «AJAX product loading», «Infinite scroll» или «Load products without page reload». После этого стандартная пагинация WooCommerce возвращается без правок кода.

Плюс этого подхода — он не ломает обновления темы. Минус — не все темы дают отключить AJAX отдельно для категории, поиска и главной страницы магазина.

2. Отключение скрипта через wp_dequeue_script

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

add_action( 'wp_enqueue_scripts', function() {
    if ( is_shop() || is_product_taxonomy() ) {
        wp_dequeue_script( 'theme-product-ajax' );
        wp_deregister_script( 'theme-product-ajax' );
    }
}, 100 );

Важно: wp_dequeue_script() сработает только если вы указали правильный handle. Его можно найти в исходниках темы или через поиск по wp_enqueue_script. Если handle неизвестен, не пытайтесь отключать всё подряд — так легко сломать фильтры, сортировку и даже галерею товаров.

3. Возврат к стандартной пагинации WooCommerce

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

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

add_filter( 'body_class', function( $classes ) {
    if ( is_shop() || is_product_taxonomy() ) {
        $classes[] = 'no-ajax-product-listing';
    }
    return $classes;
} );

Дальше в CSS или JS можно ориентироваться на этот класс и не инициализировать скрипт подгрузки на нужных страницах. Это удобнее, чем переписывать весь каталог.

Сравнение подходов

ПодходКогда подходитРиск
Отключить в настройках темыЕсли AJAX включён штатноМинимальный
wp_dequeue_script()Если подгрузка идёт отдельным скриптомМожно задеть связанные функции
Вернуть стандартный loop WooCommerceЕсли тема полностью подменила каталогНужна аккуратная проверка шаблонов

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

После отключения AJAX не ограничивайтесь визуальной проверкой. Нужно убедиться, что каталог работает как обычная страница WooCommerce, а не просто «выглядит нормально».

Полезно сравнить поведение в обычном режиме и в приватном окне, а также с отключённым кешем браузера. Иногда AJAX «не отключился», а просто подхватывается старый минифицированный файл из кеша.

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

Неправильный handle скрипта

Самая частая ошибка — попытка снять не тот скрипт. В результате AJAX продолжает работать, а вы думаете, что код не сработал. Решение простое: найдите точное имя в wp_enqueue_script() или через поиск по теме.

Отключение не там, где нужно

Иногда AJAX подключается только на странице магазина, но не в категориях. Если вы проверяете не тот шаблон, кажется, что изменения не работают. Используйте точные условия: is_shop(), is_product_taxonomy(), is_product_category().

Конфликт с плагином фильтрации

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

Кеш не очищен

После правок старый JS может продолжать отдаваться из кеша плагина, CDN или браузера. Очистите кеш на всех уровнях и проверьте файл в режиме без кеширования.

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

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

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

Как отключить AJAX-загрузку товаров в WooCommerce для совместимости и отладки
09.08.2026
Как автоматизировать создание списка клиентов в WordPress с примерами кода
09.03.2026
Как сделать автоматический импорт данных в WordPress из Excel с примерами кода
30.01.2026
Как создать собственный шорткод в WordPress с примерами кода
31.10.2025
Как отладить проблемы с отправкой писем в WordPress через SMTP
14.07.2026
×

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

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

пишет статьи

готовит SEO

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

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