WooCommerce: как автоматически отключать товары после распродажи

Почему важно автоматически отключать распроданные товары в WooCommerce

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

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

Проверьте следующие моменты, если товар продолжает отображаться и продаваться после того, как его количество стало 0 или ниже:

  • В настройках WooCommerce отключена опция управления запасами;
  • Товар не настроен на управление запасом (галочка «Управлять запасом?» не активирована);
  • Нет кастомного кода, который отключает товар при нулевом запасе;
  • Кэш сайта или плагина мешает обновлению статуса товара.

Пошаговое решение: как автоматически отключать товар после распродажи

1. Включите управление запасом для товара

В админке WooCommerce откройте карточку товара и на вкладке Запасы убедитесь, что активирована опция Управлять запасом?. Если нужно массово включить для множества товаров, используйте Bulk Edit.

2. Добавьте кастомный код для автоматического отключения товаров с нулевым запасом

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

add_action('woocommerce_product_set_stock', 'auto_disable_product_on_out_of_stock', 10, 1);function auto_disable_product_on_out_of_stock($product) {    if (!$product->managing_stock()) {        return;    }    $stock_quantity = $product->get_stock_quantity();    if ($stock_quantity <= 0) {        $product->set_catalog_visibility('hidden'); // Скрыть товар из каталога        $product->set_status('draft'); // Перевести товар в черновик        $product->save();    } else {        // Опционально вернуть товар в опубликованный статус и видимость, если появился запас        if ($product->get_status() === 'draft') {            $product->set_status('publish');            $product->set_catalog_visibility('visible');            $product->save();        }    }}

Этот код срабатывает при обновлении запаса товара и переводит товар в статус черновик и скрывает из каталога, если запас 0 или меньше.

3. Очистите кэш сайта и плагинов

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

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

  1. Создайте тестовый товар с включённым управлением запасом и запасом 1;
  2. В админке уменьшите запас до 0 и сохраните;
  3. Перейдите на страницу товара на сайте — товар должен исчезнуть из каталога и стать недоступен для покупки;
  4. Верните запас товара больше 0, обновите и проверьте, что товар снова отображается и доступен.

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

  • Код не срабатывает при массовом обновлении запасов через CSV. Решение: добавить вызов функции для массовых изменений вручную или через wp-cli, либо запускать функцию по cron при обновлении запасов.
  • Товар виден в результатах поиска, хотя скрыт из каталога. Решение: дополнительно добавить фильтр, скрывающий товары со статусом «черновик» из поисковой выдачи и виджетов.
  • Кэш мешает обновлению статуса товара. Очистите кэш WordPress, плагинов и CDN, отключите кэширование на время тестирования.
  • Ошибки в синтаксисе кода. Проверяйте код через IDE или PHP линтер перед загрузкой на сайт.

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

  • Не храните кастомный код в файле functions.php основной темы — используйте дочернюю тему или отдельный плагин.
  • При большом количестве товаров лучше запускать проверку и обновление статусов через WP-Cron, чтобы избежать нагрузки при каждом изменении запаса.
  • Логируйте изменения статусов товаров, чтобы отслеживать автоматические действия и быстро реагировать на сбои.
  • Регулярно обновляйте WooCommerce и WordPress для совместимости с вашим кастомным кодом.

Сравнение вариантов реализации автоматического отключения товаров

МетодПлюсыМинусы
Встроенное управление запасами + ручное отключениеПростота, не требует кодаЗависит от человека, можно забыть
Кастомный код на хуках WooCommerceАвтоматизация, точное управление, не требует плагиновТребует навыков разработки, риск ошибок
Использование плагинов управления запасами и видимостьюМного функций, поддержкаДополнительная нагрузка, лицензии
Как добавить произвольные поля в WordPress без плагинов
01.12.2025
Как создать собственный кustomный виджет в WordPress: пошаговое руководство
26.11.2025
WooCommerce: как автоматически отключать товары после распродажи
23.06.2026
Как удалить и изменить meta-robots в WordPress для SEO оптимизации
08.02.2026
Как установить лимит на количество регистраций в WordPress
12.02.2026