Автоматическое исключение из каталога WooCommerce товаров без остатка

Диагностика проблемы: почему товары без остатка отображаются в каталоге

По умолчанию WooCommerce отображает в каталоге все товары, даже если их количество на складе равно нулю или товар отсутствует. Это приводит к негативному UX — посетители видят товары, которые невозможно купить. В некоторых случаях это снижает конверсию и создает лишнюю нагрузку на сервер.

Чтобы проверить, попадают ли товары без остатка в каталог, зайдите в админку WooCommerce → Товары и откройте страницу магазина как пользователь. Если товары с нулевым количеством видны, значит, задача актуальна.

Как автоматически скрывать товары без остатка из каталога WooCommerce

Вариант 1: Настройка через параметры WooCommerce

WooCommerce умеет скрывать товары без наличия на складе, но эта опция может быть отключена. Чтобы проверить и включить её:

  • Перейдите в WooCommerce → Настройки → Товары → Запасы;
  • Найдите опцию Скрывать товары без остатка из каталога и поставьте галочку;
  • Сохраните изменения и очистите кэш, если он есть.

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

Вариант 2: Автоматическое исключение товаров без остатка через код

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

add_action('pre_get_posts', function($query) {
    if (is_admin() || !$query->is_main_query()) {
        return;
    }
    if (is_shop() || is_product_category() || is_product_tag()) {
        $meta_query = $query->get('meta_query') ?: [];
        $meta_query[] = [
            'key' => '_stock_status',
            'value' => 'outofstock',
            'compare' => '!='
        ];
        $query->set('meta_query', $meta_query);
    }
});

Этот код добавляет условие к основному запросу каталога, исключая товары со статусом outofstock. Разместите его в файле functions.php вашей дочерней темы или в собственном плагине.

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

Чтобы убедиться, что товары без остатка не отображаются:

  1. Перейдите на страницу магазина и категорий;
  2. Убедитесь, что товары со статусом «Нет в наличии» отсутствуют в списках;
  3. В админке измените количество товара на 0 и обновите страницу магазина;
  4. Если товар исчез, решение работает корректно.

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

  • Опция скрытия товаров без остатка не включена в настройках WooCommerce. Решение: проверьте и активируйте ее.
  • Кэширование страницы мешает обновлению каталога. Решение: очистите кэш браузера, кэш плагина или серверный кэш.
  • Код добавлен в файл, который не подключается. Решение: убедитесь, что код находится в functions.php активной темы или в загружаемом плагине.
  • Конфликт с другими плагинами, которые управляют каталогом. Решение: временно отключите плагины, чтобы проверить конфликт, и адаптируйте код.

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

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

Сравнение вариантов решения

МетодПлюсыМинусыСложность
Встроенная опция WooCommerceПростота настройки, не требует кодаРаботает только с базовым управлением запасамиНизкая
Фильтр pre_get_postsГибкость, работает с кастомными сценариямиТребует навыков программирования, возможны конфликтыСредняя
Использование сторонних плагиновДополнительные функции, поддержкаНагрузка на сайт, возможные конфликтыСредняя

Добавь в закладки и поделись с друзьями:

⭐⭐⭐⭐⭐
Как удалить лишние слова из заголовков постов WordPress автоматически
19.01.2026
Как использовать WP GPT для автоматизации создания контента в WordPress
06.02.2026
Как сделать динамические заголовки в WordPress на основе данных
13.12.2025
Как массово удалить или изменить атрибуты ALT изображений в WordPress
23.03.2026
Как в WooCommerce исключить из каталога товары без остатка на складе
18.04.2026
×

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

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

пишет статьи

готовит SEO

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

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