Jak skrýt produkty zařazené do specifické kategorie v e-shopu

Skrytí konkrétní kategorie z celé WooCommerce e-shopu, pomocí jednoduchého snippetu.

Občas se může stát, že máte v e-shopu produkty, které nechcete na e-shopu zobrazovat, pokud je zařadíte do specifické kategorie.

Například, všechny produkty v kategorii Accessories, jak je vidět za screenu z testovacího webu:

Když použijete akci woocommerce_product_query, pro přístup k objektu query, můžete výpis produktů upravovat v podstatě jakkoliv.

Na internetu najdete řadu návodů, které doporučují používat pre_get_posts, ale ten hook je používán napříč celým webe, takže musíte vypodmínkovat, zda se jedná o query produktů. U woocommerce_product_query nemusíte.

Funkce:

add_action( 'woocommerce_product_query', 'custom_pre_get_posts_query' );
function custom_pre_get_posts_query( $q ) {

	$tax_query = (array) $q->get( 'tax_query' );
	
	$tax_query[] = array(
		'taxonomy' => 'product_cat',
		'field'    => 'slug',
		'terms'    => array( 'accessories' ),
		'operator' => 'NOT IN'
	);
	
	$q->set( 'tax_query', $tax_query );
	
}

V případě, že budete chtít raději použít id kategorií, tak změníte slug na ids a místo polí slugů, použijete id kategorií. Když budete chtít skrýt více kategorií, rozšíříte pole terms o další položku.

Výsledek:

Jak můžete vidět, ve výpisu produktů již kategorie Accessories není. K tomuto článku mne inspiroval Alf v komentáři u kompletního odebrání kategorií z e-shopu – https://musilda.cz/deaktivace-vypisu-kategorii-produktu-ve-woocommerce/#comment-367523, což je technicky něco jiného, protože upravujete to, jak jsou definovány custom taxonomies v e-shopu.

About The Author

Zajímá mne Wordpress, responsivní šablony a zkrátka vše kolem tohoto skvělého redakčního systému.

Související články

Přidejte komentář

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *