Это такой пост-дополнение к предыдущему посту, в котором мы сортировали товары по их наличию в интернет-магазине.
В этом уроке я покажу вам такой небольшой сниппет кода для functions.php
, после вставки которого, со страницы «Магазин», категорий и меток товаров исчезнут те товары, которых нет в наличии.
Не могу не порекомендовать мой видеокурс по натяжке готовой вёрстки на WooCommerce.
Прежде, чем перейти к сниппетам кода, я хочу показать вам, где это делать в админке (сюрприз).
То есть по сути теперь, когда вы знаете про эту настроку, код вам уже не понадобится. Хотя с другой стороны, возможно вы захотите как-то по-другому его настроить.
add_filter( 'pre_get_posts', 'truemisha_show_in_stock_only', 25 ); function truemisha_show_in_stock_only( $query ) { if( ! is_admin() && $query->is_main_query() && ( is_shop() || is_product_category() || is_product_tag() ) ) { $query->set( 'meta_query', array( array( 'key' => '_stock_status', 'value' => 'outofstock', 'compare' => 'NOT IN' ) ) ); } }
Прежде всего давайте скину вам ссылки на документации функций, используемых в этом сниппете кода:
Теперь давайте поговорим о мета-поле _stock_status
в WooCommerce. Если перейти в настройки товара на вкладку «Запасы», то мы увидим три значения в выпадающем списке:
Так вот – это как раз три значения мета поля _stock_status
:
instock
– В наличии,outofstock
– Нет в наличии,onbackorder
– Предзаказ.Чтобы оставить комментарий, пожалуйста, зарегистрируйтесь или войдите.
Спасибо за помощь! У меня возникло несколько вопросов:
1) к примеру используем какой либо билдер и у него есть аддон вывода товаров из категорий магазина, скажем на главной странице сайта или на другой странице, посте, как в таком случаи выводить товары только "в наличии", проще говоря проверка, является это страницей или постом?
2) Как выводить товары "в наличии" скажем для "рекомендуемые", "похожие" и т.д.
1. Можно законнектить к условию is_page(), но важно не забывать, что в аддонах билдера могут быть свои фильтры-хуки
2. Убрать строку 7 либо также, проверить на фильтры, там они вероятно есть.
Проблема в другом.
Даже если убрать товары, которых нет в наличии - будут пустые места вместо них в каталоге.
Это сначала нужно отсортировать товары со статусом "нет в наличии" в самый конец кодом из прошлой статьи об остатках, а потом уже скрывать.
У меня на самом деле есть сомнения относительно пустых мест.
Протестируйте
Миша, подскажи - как сделать - чтоб вариации были товара - в карточке, а которых нет - нельзя было бы выбрать - не могу найти
Как на алике например - https://www.aliexpress.com/item/4000167087106.html
Могу предложить метод
get_stock_quantity()
.В контексте:
Может знаете, как сделать, что бы в каталоге были отсутствующие товары, но при этом не показывались в похожих?
Добрый день! Подскажите как отсортировать товары по наличии в результатах поиска, сначала в наличии и в конце которых нет. Спасибо!