Скрываем товары, которых нет в наличии со страницы каталога и категорий товаров

Это такой пост-дополнение к предыдущему посту, в котором мы сортировали товары по их наличию в интернет-магазине.

В этом уроке я покажу вам такой небольшой сниппет кода для 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. Если перейти в настройки товара на вкладку «Запасы», то мы увидим три значения в выпадающем списке:

вкладка запасы в настройках товара WooCommerce

Так вот – это как раз три значения мета поля _stock_status:

  • instock – В наличии,
  • outofstock – Нет в наличии,
  • onbackorder – Предзаказ.

Миша

Впервые познакомился с WordPress в 2009 году. Организатор и спикер на конференциях WordCamp. Преподаватель в школе Нетология.

Пишите, если нужна помощь с сайтом или разработка с нуля.

Комментарии — 9

Чтобы оставить комментарий, пожалуйста, зарегистрируйтесь или войдите.

Миша Рудрастых и WordPress

Полезности из мира WordPress и жизни студии.

Мой телеграм-канал