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

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

В этом уроке я покажу вам такой небольшой сниппет кода для 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. Ведь WordPress – это лучший движок для разработки сайтов – как для тех, кто готов использовать заложенную структуру этой CMS, так и для тех, кто предпочитает headless решения.

Сам же я впервые познакомился с WordPress в 2009 году. Организатор WordCamp. Преподаватель в школах Epic Skills и LoftSchool.

Если вам нужна помощь с вашим сайтом или может даже разработка с нуля на WordPress / WooCommerce — пишите. Я и моя команда сделаем вам всё на лучшем уровне.

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

Оставить комментарий

Если вы хотите добавить код, не забудьте обернуть его в <pre lang="php"></pre>, если же код – меньше одной строчки, то можно и в <code></code>.