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

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

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

Чтобы убедиться, что проблема именно в отображении товаров без остатков, проверьте настройки WooCommerce в разделе WooCommerce > Настройки > Товары > Запасы. Там есть опция Скрывать товары без остатков из каталога. Если она неактивна или не работает корректно, потребуется программное решение.

Пошаговое решение: исключаем из каталога товары без остатков через код

1. Добавление фильтра для изменения основного запроса WooCommerce

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

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

Этот фильтр изменяет WP_Query, который формирует каталог продуктов WooCommerce, добавляя условие, исключающее товары с мета-ключом _stock_status равным outofstock.

2. Проверка и очистка кэша

Если на сайте используется кэширование (плагины типа WP Super Cache, LiteSpeed Cache, Redis и т.п.), очистите кэш, чтобы изменения вступили в силу.

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

  • Перейдите на страницу магазина и в категории товаров.
  • Убедитесь, что товары с запасом 0 или отрицательным количеством НЕ отображаются.
  • Проверьте, что товары с остатком отображаются корректно.
  • Чтобы проверить, можно временно изменить количество у товара через админку и обновить страницу каталога.

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

  • Ошибка: Товары без остатка всё равно видны.
    Причина: Кэш страницы не очищен или фильтр не сработал из-за специфики темы.
    Решение: Очистить кэш, проверить, что код добавлен именно в активную тему, и что нет конфликтов с другими плагинами.
  • Ошибка: Фильтр влияет на админку или другие запросы.
    Причина: Отсутствие проверки контекста ! is_admin() && $query->is_main_query().
    Решение: Добавить эту проверку в код, чтобы фильтр применялся только к фронтенду и основному запросу.
  • Ошибка: Не исключаются товары с вариациями без остатка.
    Причина: Для вариативных товаров нужно учитывать остатки вариаций.
    Решение: Для сложных случаев используйте плагины или расширенный код с учетом вариаций.

Практические советы по оптимизации и безопасности

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

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

МетодПреимуществаНедостатки
Включение опции WooCommerce «Скрывать товары без остатков»Простая настройка без кодаНе всегда работает корректно, зависит от темы
Код с фильтром pre_get_postsГибко, контролируемо, работает на всех стандартных темахТребует навыков разработки, может конфликтовать с кастомными темами
Использование плагинов (например, Clearfy Pro)Дополнительные функции, удобный интерфейсПлатные решения, возможна избыточность

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

⭐⭐⭐⭐⭐
Как использовать WP GPT для автоматизации создания контента в WordPress
06.02.2026
Как автоматизировать удаление пустых комментариев в WordPress
15.04.2026
Как избежать проблем с кэшированием в WordPress: практическое руководство
02.02.2026
Как массово удалить или изменить атрибуты ALT изображений в WordPress
04.01.2026
Как автоматически удалять большие файлы в WordPress: практическое решение
09.04.2026
×

AI-плагин

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

SEO и мета-теги

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

Изображения

Комментарии

Подробнее