xpay✦ Commerce
Directory
WooCommerce plugins
Hide Products by User Role for WooCommerce
Hide Products by User Role for WooCommerce
Control WooCommerce product visibility by user role. Hide products, categories, and variations from guests or any role — no coding required.
5.0
(1 ratings)Will this break my store?
What the WordPress.org registry says about keeping Hide Products by User Role for WooCommerce running.
Tested to 7.0.2
Tested against the WordPress branch in use today.2 months ago
At least 5.4 releases a year since launch. WordPress.org only lists versions still available for download, so the real number may be higher.7.4
Your host must be running at least this version.6.2
woocommerce
These must be installed and active first.1
A single maintainer. Worth knowing if the plugin is load-bearing for your store.Maintenance & trust
Scored on how Hide Products by User Role for WooCommerce is looked after — not on how many stores run it.
Maintenance
35 / 35WordPress compatibility
20 / 20Support responsiveness
Not enough dataMerchant satisfaction
10 / 15Listing transparency
10 / 10Ratings
5.0
1 ratingHide Products by User Role for WooCommerce gives store owners complete control over product visibility based on WordPress user roles — including guests (unauthenticated visitors). Set global rules from the WooCommerce settings screen, or configure visibility per product and per variation, all without writing a line of code.
Whether you run a B2B wholesale store, a membership site, or simply want to keep certain products away from guests, this plugin enforces visibility at the query level so hidden products never leak through search, archives, the REST API, or direct URL access.
Why store owners choose this plugin
- Run B2B and B2C from a single store — keep wholesale and retail catalogs side by side and show each audience only what they should see
- Protect member-only or exclusive products — restrict visibility to subscribers, members, or any custom role
- Increase catalog relevance — show each user role a curated product set and reduce catalog noise
- Block guest browsing — require an account before any product is visible, turning your shop into a private catalog
- Zero performance overhead — visibility is enforced at the WordPress/WooCommerce query level, not as post-load filtering
Key Features
Global visibility rules (WooCommerce > Settings > Products > Hide by User Roles)
- Hide all products from a role with a single rule
- Hide products by category or tag per role
- Unlimited rules with drag-and-drop priority ordering
- Duplicate existing rules to create variations quickly
- Rule-count badge in the WooCommerce settings navigation
Per-product and per-variation control
- Dedicated “Hide by Role” tab on every WooCommerce product edit screen
- Select any combination of roles to hide that individual product from
- Full support for variable products: set visibility separately on each variation
Complete query coverage — hidden means truly hidden
- Shop page, category archives, and tag archives
- WordPress and WooCommerce search results
- FiboSearch (DGWT WooCommerce Ajax Search) compatibility
- WooCommerce REST API (with block-editor edit-context exemption so admins can still select products)
- Single product page redirect — guests are sent to the login page; logged-in restricted users are sent to the shop
- Block themes — replaces the “No products found” block with a role-aware login or logout prompt
Developer-friendly extensibility
- 20+ filters and actions covering every stage of the visibility pipeline
- Inject runtime rules (subscription-based, time-limited) without touching plugin files
- Add custom taxonomy targets, override redirect URLs, or map membership levels to roles
- HPOS (High Performance Order Storage) compatible
Perfect for
- Wholesale / B2B stores — hide retail products from registered wholesalers, or hide wholesale products from regular customers
- Membership and subscription sites — restrict premium products to paying members
- Private catalogs — require an account before any product is shown
- Tiered product access — show different product sets to different customer segments
Yes. Add a rule, set the role to Guest and the target to All Products. Unauthenticated visitors will see no products on the shop page, in search results, or on any product page — direct URL access redirects them to the login page.
Yes. The plugin filters all WooCommerce product queries, including shop, category and tag archives, search results, and the WooCommerce REST API.
Yes. Guests are redirected to the WordPress login page (with a return URL so they land back on the product after logging in). Logged-in users whose role hides the product are redirected to the shop. You can override the redirect URL with the riaco_hpburfw_redirect_url filter.
Yes. Open a variable product, expand any variation in the Variations tab, and you will find a Hide by Role section with per-role checkboxes.
Yes. The plugin declares full compatibility with WooCommerce High Performance Order Storage.
Yes. The plugin filters block-based product collection queries and replaces the “No products found” block with a relevant login or logout message when a global hide rule is active for the current user’s role.
Yes. Visibility rules are applied automatically to FiboSearch queries.
Rules are evaluated from the top of the list downward. If an All Products rule matches the current user’s role, evaluation stops immediately — no lower rules are checked. Move higher-priority rules to the top using the arrow buttons. Rules with equal priority are evaluated in the order they were created.
Yes. Use the riaco_hpburfw_targets filter to add any registered taxonomy as a target in the settings page dropdown.
Yes. Use the riaco_hpburfw_visibility_rules filter to inject rules at runtime (useful for subscription-based or time-limited rules) without saving them to the database. Use riaco_hpburfw_rule_applies to add extra conditions on top of the base role match.
The plugin works with any user role that WordPress recognises. If your membership plugin assigns roles, those roles will appear in the settings automatically. Use the riaco_hpburfw_roles filter to expose non-role membership levels, and riaco_hpburfw_rule_applies to add time-based or subscription-status conditions.
Categories
Plugin details
Tags on WordPress.org
