Products Visibility by User Roles lets WooCommerce stores show or hide specific products and categories based on WordPress user roles. Wholesale-only catalogs, members-only products, role-gated browsing — all configured from one settings UI without writing code.
I built this for stores running multi-tier catalogs where the same WooCommerce install serves different audiences with different product sets. The visibility logic stays consistent across shop pages, search, REST endpoints and structured data — which is the part that off-the-shelf hacks usually get wrong.
The problem it solves
Some stores need different catalogs for different audiences. A trade supplier might want certain SKUs visible only to verified contractors. A membership shop might gate exclusive products behind a paid tier. A multi-vertical store might want category visibility per role.
WooCommerce ships with catalog visibility but not role-aware visibility, and the bolt-on solutions usually break consistency — a product hidden on the shop page still appears in search, or shows in structured data feeds. The plugin enforces visibility consistently across every surface.
What the plugin does
A consistent role-aware catalog visibility layer for WooCommerce:
- Per-product visibility by role — show or hide individual products per WordPress role
- Per-category visibility by role — hide entire categories from specific audiences
- Wholesale-only catalogs — verified roles see trade SKUs, retail roles do not
- Members-only products — gate exclusive products behind paid roles
- Guest vs logged-in distinction — force login before seeing certain catalog segments
- Consistent across shop, search and REST — hidden products stay hidden everywhere
- Custom redirect for hidden products — direct URL access redirects to login or shop
- Compatible with menus and widgets — hidden categories disappear from navigation too
How it is built
The plugin hooks pre_get_posts on product queries to apply the visibility filter at the query layer rather than at the template layer — meaning hidden products never enter the result set, which keeps performance and consistency intact. Visibility rules are stored as product meta and term meta and indexed for fast lookup. The REST API is filtered through the standard WooCommerce REST visibility hooks so headless implementations respect the same rules.
The plugin is HPOS-compatible, fully translatable, and respects WordPress capability checks so admins see the full catalog regardless of role rules.
Marketplace adoption
A 4.5-star rating across 23 reviews on the official WooCommerce Marketplace reflects the kind of stores that need real catalog segmentation. Trade-only suppliers, membership shops and multi-vertical retailers rely on the plugin to enforce visibility consistently across every storefront surface.
- Marketplace rating: 4.5 stars — based on 23 customer reviews on the official WooCommerce Marketplace
- Query-layer visibility — hidden products stay hidden in search and REST, not just templates
- Active multi-tier catalog customer base — used by membership, B2B and verticalised stores
- Multi-year tenure on the marketplace — continuously maintained alongside WooCommerce releases
- Composes with Role Pricing and B2B — works as part of the broader Addify wholesale stack
Need a custom WooCommerce plugin built like this?
I build production-grade WooCommerce plugins like the ones I shipped on the official WooCommerce Marketplace — engineered at the query layer so consistency holds across shop, search and REST. If you need custom catalog logic inside WooCommerce, let’s talk.
See my WooCommerce plugin development service