Katalog Visibility for WooCommerce
·
Hide selected product categories from the Shop page while keeping them visible on category pages.
Katalog Visibility for WooCommerce gives store owners granular control over which product categories appear on the main Shop page — without affecting visibility anywhere else on the site.
Products in hidden categories remain fully accessible through:
- Their own category archive pages (e.g.
/product-category/wholesale/) - Direct product URLs
- Search results (configurable)
- Cart, checkout, and all other WooCommerce pages
Use Cases
- Wholesale / trade-only products — keep them off the public Shop page but accessible via direct links shared with trade customers.
- Coming soon collections — prepare categories ahead of launch without exposing them to casual shoppers.
- Funnel-based selling — drive traffic to specific landing/category pages instead of the Shop page.
- Members-only products — pair with the developer filter to show/hide categories based on user role.
Features
- Multi-select category picker — searchable Select2 dropdown listing all product categories including nested subcategories.
- Selective hiding — only the main Shop page is affected; category archives always show all their products.
- Optional search exclusion — toggle to also hide selected categories from frontend search results.
- Optional tag archive exclusion — toggle to also hide selected categories from product tag archive pages.
- Per-product override — “Force show on Shop page” checkbox on individual products to override category-level hiding.
- Debug logging — enable debug mode to log excluded category and product IDs to WooCommerce Status Logs.
- Developer-friendly —
wsvc_hidden_categoriesfilter allows programmatic control (e.g. role-based visibility). - Safe query merging — appends to existing
tax_querywithout overriding other plugins’ filters. - HPOS compatible — fully compatible with WooCommerce High-Performance Order Storage.
- Lightweight — no external dependencies, no custom database tables, no frontend assets.
Developer Filter Example
Show hidden categories to wholesale users:
add_filter( 'wsvc_hidden_categories', function ( $hidden ) {
if ( current_user_can( 'wholesale_customer' ) ) {
$wholesale = get_term_by( 'slug', 'wholesale', 'product_cat' );
if ( $wholesale ) {
$hidden = array_diff( $hidden, array( $wholesale->term_id ) );
}
}
return $hidden;
} );
