Диагностика проблемы: зачем отключать сообщение «Отсутствует на складе»
WooCommerce по умолчанию отображает статус товара «Отсутствует на складе» (Out of stock), если остаток равен нулю или меньше. Для интернет-магазинов с частыми товарами под заказ или с ассортиментом, который временно недоступен, такое сообщение может отпугивать покупателей. Иногда нужно скрыть этот статус, чтобы не снижать конверсию и не создавать впечатление дефицита.
Способы отключения показа «Отсутствует на складе» в WooCommerce
1. Отключение через настройки WooCommerce
Самый простой способ — отключить отображение товаров, которых нет в наличии. Это делается в настройках WooCommerce:
- В админке WordPress зайдите в WooCommerce → Настройки → Товары → Запасы
- Снимите галочку с «Включить управление запасами» или «Скрывать товары, которых нет в наличии»
Минус: товары не будут показываться вовсе, а не только статус.
2. Отключение вывода статуса через фильтр в functions.php
Чтобы сохранить товары в каталоге, но убрать надпись «Отсутствует на складе», добавьте следующий код в functions.php вашей темы (лучше дочерней):
add_filter( 'woocommerce_get_availability', 'custom_remove_out_of_stock_message', 10, 2 );
function custom_remove_out_of_stock_message( $availability, $product ) {
if ( $product->get_stock_quantity() <= 0 ) {
$availability['availability'] = '';
}
return $availability;
}Этот фильтр проверяет количество на складе и заменяет сообщение на пустую строку.
3. Скрытие статуса через CSS
Если по каким-то причинам править PHP неудобно, можно скрыть текст через CSS:
.stock.out-of-stock {
display: none !important;
}Минус — статус остается в коде, что может влиять на SEO и пользовательский опыт.
Проверка результата после внедрения решения
- Откройте на сайте карточку товара с нулевым запасом
- Проверьте, что надпись «Отсутствует на складе» не отображается
- Проверьте страницу каталога, чтобы убедиться, что товар виден (если не скрывали полностью)
- Для фильтра PHP используйте режим отладки: временно добавьте
error_log()внутри функции, чтобы убедиться, что фильтр срабатывает
Частые ошибки и как их исправить
- Код не сработал — неправильное место вставки: убедитесь, что код находится в
functions.phpактивной дочерней темы, а не в плагине без правильного подключения. - Кэширование мешает проверить изменения: очистите кэш сайта и браузера.
- Конфликт с другими плагинами: проверьте, не переопределяет ли другой плагин статус товара. Временно отключите плагины, связанные с WooCommerce.
- CSS не применяется: проверьте правильность селектора в инструменте разработчика браузера.
Практические советы по безопасности и производительности
- Не меняйте ядро WooCommerce, используйте хуки и фильтры для кастомизации
- Для функций в
functions.phpделайте резервную копию перед изменениями - Используйте дочернюю тему, чтобы не потерять изменения при обновлении темы
- Избегайте чрезмерного использования CSS для скрытия важных элементов — лучше контролировать логику через PHP
Сравнение вариантов решения
| Метод | Плюсы | Минусы | Рекомендуемое использование |
|---|---|---|---|
| Отключение в настройках WooCommerce | Простота, без кода | Скрывает товары полностью | Если нужно убрать товары из каталога |
| Фильтр PHP в functions.php | Гибкость, сохраняются товары | Требует навыков кода | Для тонкой настройки отображения |
| Скрытие через CSS | Простота внедрения | Статус остаётся в коде | Временное решение или тест |