WMGRs Catalog Access Rules for WooCommerce

Description

Show every visitor only the catalog they should see. Hide wholesale items from retail customers, retail bundles from wholesale buyers, or your whole B2B range from guests.

WooCommerce gives you one catalog and shows it to everybody. That is fine for a shop with one kind of customer, and wrong the moment you have two. Trade-only lines end up visible to the public, retail multipacks clutter the wholesale browse, and the distributor range you are contractually not allowed to advertise sits there in your sitemap. The usual workarounds — unpublishing products, running a second site, hiding things behind a password — all cost you either sales or a second store to maintain.

This plugin fixes it at the level WooCommerce actually asks the question. You write rules that say hide these products, or these whole categories, from this role — and everything downstream obeys. Hidden items vanish from the shop page, category archives and product search. Their direct URLs redirect to the shop rather than 404ing. Add-to-cart is refused even if somebody constructs an ?add-to-cart= link by hand. Hidden categories disappear from category widgets, menus and the [product_categories] shortcode, so nothing points at a door that will not open.

Rules stack rather than compete. Each rule adds its hidden items for the role it targets, so a wholesale role and a guest can have completely different views of the same store without you reasoning about precedence. There is also an “Everyone” target for temporarily pulling an item from the whole storefront — useful when a line goes out of stock indefinitely and you do not want to change its status and lose its URL.

Features

  • Hide specific products or whole categories (with all their products) per user role or from guests
  • An “Everyone” option to temporarily hide items from the whole storefront
  • Hidden items disappear from the shop page, category pages, and product search
  • Direct product URLs redirect to the shop; hidden category archives too
  • Add-to-cart is blocked for hidden products — even via direct ?add-to-cart= links
  • Hidden categories also vanish from category widgets, menus and the [product_categories] shortcode
  • Related products and shortcode loops respect the rules
  • Multiple rules stack — each rule adds its hidden items for its role
  • Lightweight: no extra tables, per-request caching of rule lookups
  • Compatible with WooCommerce High-Performance Order Storage (HPOS)

Who it is for

Wholesale and trade suppliers who must not show trade pricing or trade-only lines to the public. B2B stores serving both businesses and consumers from one catalog. Membership sites where part of the range is a member benefit. Distributors and resellers under agreements that restrict what they may advertise publicly. And any store that has ever unpublished a product just to get it out of sight.

How it works

  1. Go to WooCommerce Catalog Access Add Rule.
  2. Choose who the rule hides from — a user role, guests, or everyone.
  3. Pick the products or categories it hides.
  4. Save. The rule takes effect immediately, everywhere the catalog is shown.

Built to stay out of the way

No database tables are added and no front-end scripts are loaded. Rules are applied through WooCommerce’s own visibility and query filters, with rule lookups cached per request so a page full of products does not re-read the rules for each one. Uninstalling removes the single option it stores and leaves your products exactly as they were.

The Woo Managers B2B suite

Combine with Role Based Pricing, Tiered Pricing, Request a Quote, B2B Registration & Approval and Min Max Order Rules by Woo Managers for a complete B2B store.

Need more?

A premium version with per-user visibility, full private-store mode, hide-from-sitemap/SEO controls, replacement placeholder content and country-based visibility is coming at woomanagers.com.

Installation

  1. Upload the plugin and activate it. WooCommerce must be active.
  2. Go to WooCommerce Catalog Access and click Add Rule.
  3. Choose who the rule hides from — a user role, guests, or everyone.
  4. Select the products or whole categories to hide, and save.
  5. Add further rules as needed; every matching rule applies together.

FAQ

How do I hide products from guests in WooCommerce?

Add a rule, set “Hidden from” to Guest (not logged in), and pick the products or categories. Logged-out visitors stop seeing those items anywhere in the catalog, while your logged-in customers carry on as normal.

How do I show different products to different user roles?

Create one rule per role. Each rule hides its own set of items from that role, and rules stack rather than override each other — so a wholesale customer and a retail customer can see two genuinely different catalogs from the same store.

Can I hide a whole category at once?

Yes. Choose the category rather than individual products and every product inside it is hidden too, along with the category archive and the category’s appearance in widgets, menus and the [product_categories] shortcode.

What happens when someone opens a hidden product’s URL?

They are redirected to the shop page. The product also can’t be added to the cart by URL, so a shared or guessed ?add-to-cart= link won’t work either.

Can I make a trade-only store where the public sees nothing?

You can hide your whole catalog from guests by targeting the relevant categories at the Guest role, which is the usual trade-only setup. Full private-store mode — locking the entire storefront behind login in one switch — is in the premium version.

Can I hide something from everyone?

Yes, choose “Everyone (hide from all visitors)” — handy for temporarily pulling items without changing their status, so the product keeps its URL, reviews and history for when it comes back.

Do the rules apply to search results?

Yes. Hidden products are removed from product search as well as the shop and category pages, so they can’t be found by searching for their name.

Do related products and shortcodes respect the rules?

Yes. Related-product blocks and product shortcode loops are filtered the same way, so a hidden item can’t reappear as a recommendation on a visible product’s page.

Does it work with product variations?

Rules apply at the product level, so hiding a variable product hides it and all of its variations together.

What happens if two rules cover the same product?

They stack. Each rule hides its items from the role it targets, so overlapping rules simply mean the product is hidden from both roles — there is no precedence to reason about.

Will it slow down my store?

No. There are no extra database tables, no front-end scripts and no background processing. Rule lookups are cached per request, so a shop page showing thirty products reads the rules once rather than thirty times.

Does it work with High-Performance Order Storage?

Yes. The plugin declares HPOS compatibility and works with both legacy and high-performance order storage.

Does hiding a product affect SEO or my sitemap?

Hidden products are removed from the storefront and from search on your site, but this version does not alter XML sitemaps or add noindex headers. Sitemap and SEO controls are part of the premium version.

What happens to my rules if I uninstall?

Uninstalling removes the plugin’s single stored option, which contains your rules. Your products and categories are untouched — they simply become visible to everyone again.

Reviews

There are no reviews for this plugin.

Contributors & Developers

“WMGRs Catalog Access Rules for WooCommerce” is open source software. The following people have contributed to this plugin.

Contributors

Changelog

1.0.1

  • Tweak: the plugin author now shows as “WooManagers (WMGRs)” on the Plugins screen, matching the WordPress.org listing.
  • No functional changes.

1.0.0

  • Initial release.