
外掛標籤
開發者團隊
② 後台搜尋「Katalog Visibility for WooCommerce」→ 直接安裝(推薦)
原文外掛簡介
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_categories filter allows programmatic control (e.g. role-based visibility).
Safe query merging — appends to existing tax_query without 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;
} );
