This plugin hasn’t been tested with the latest 3 major releases of WordPress. It may no longer be maintained or supported and may have compatibility issues when used with more recent versions of WordPress.

Product Visibility by User Role for WooCommerce


Product Visibility by User Role for WooCommerce plugin lets you show/hide WooCommerce products depending on customer’s user role.

You can choose how products should be hidden:

  • Hide products in shop and search results.
  • Make products non-purchasable.
  • Hide products completely.

In free version you can set included or excluded user roles for each product individually. If you want to set user roles visibility options in bulk (for multiple products at once, product categories or product tags), please check Product Visibility by User Role for WooCommerce Pro plugin. Pro version also has options to hide menu items, hide product terms, set custom redirect page (i.e. instead of default 404).


  • We are open to your suggestions and feedback. Thank you for using or trying out one of our plugins!
  • Drop us a line at


  1. Upload the entire plugin folder to the /wp-content/plugins/ directory.
  2. Activate the plugin through the «Plugins» menu in WordPress.
  3. Start by visiting plugin settings at «WooCommerce > Settings > Product Visibility».


26. März 2024 3 replies
What a shame to state their plugin is HPOS ready and they added the code but still don’t release the update even after 3 MONTHS… Wondering about the real reasons behind it? Who is responsible and behind this lack of professionalism?
18. Februar 2024 1 reply
I added a plugin. I can see the message This plugin is incompatible with the enabled WooCommerce feature ‘High-Performance Order Storage (HPOS)’, it shouldn’t be activated.  And I don’t know if it will interfere with the operation of the shop. Do you plan to improve the plugin?
6. Oktober 2021 1 reply
Most stores have different shapes and sizes of products. Depending on these factors, stores want certain products available for wholesale. For a plugin that specializes in product visibility, this information must be assigned at a variation level, not a product level.
12. September 2021 1 reply
Have a Hybrid B2B B2C Shop. My Wholesale Plugin and all other woocoomerce hide plugins can´t hide the products from search results with ajax. your plugin works perfectly! thank you. will buy the pro in the next days.
Read all 20 reviews

Contributors & Developers

“Product Visibility by User Role for WooCommerce” is open source software. The following people have contributed to this plugin.


“Product Visibility by User Role for WooCommerce” has been translated into 1 locale. Thank you to the translators for their contributions.

Translate “Product Visibility by User Role for WooCommerce” into your language.

Interested in development?

Browse the code, check out the SVN repository, or subscribe to the development log by RSS.


1.8.1 – 2023-07-13

  • FIX: PHP 8.2 notices.
  • FIX: WP notice.

1.8.0 – 2022-06-01

  • UPDATE: changes to maintain compatibility with new features in pro version.
  • UPDATE: updated .pot file for translations.

1.7.3 – 2021-09-08

  • FIX: issue with product attribute counts not updating in WC layered nav widget.
  • UPDATE: PHP 8 now officially supported.
  • UPDATE: updated .pot file for translations.

1.7.2 – 2021-04-23

  • FIX: bug with setup_search_cases where post_type could be array.
  • UPDATE: added explanatory text around visible/invisible settings.
  • UPDATE: updated .pot file for translations.

1.7.1 – 2021-04-13

  • FIX: compatibility issue with «WooCommerce Composite Products» plugin.

1.7.0 – 2021-01-14

  • NEW: compatibility with «WooCommerce Product Search» plugin.

1.6.2 – 2020-09-17

  • UPDATE: bump tested versions.

1.6.1 – 2020-08-28

  • FIX: PHP warning.

1.6.0 – 2020-08-22

  • NEW: per-product settings now always take priority over bulk settings.
  • NEW: adjust term counts (i.e. category counts) to account for hidden products.
  • FIX: when users have multiple roles, we now look at all roles together before deciding visibility. (Previously we decided based on the first matching role only).
  • UPDATE: display our settings in WC status report.
  • UPDATE: major code refactoring.
  • UPDATE: updated .pot file for translations.

1.5.8 – 2020-07-08

  • FIX: bug (since v1.5.5) allowing hidden products to appear in search.
  • UPDATE: add Persian translations (thanks to Farhad Fariborzi).

1.5.7 – 2020-06-20

  • FIX: some updates missing from v1.5.6 package.

1.5.6 – 2020-06-08

  • FIX: non-translatable string.
  • UPDATE: bump tested versions.

1.5.5 – 2020-05-12

  • FIX: filter ajax requests (may solve issues with certain themes and/or widgets that query items via ajax).
  • FIX: hidden products appearing in feeds generated by Google Product Feeds plugin (and probably other feeds plugins as well). Now feeds will be filtered with the same rules as a user with role «guest».
  • FIX: issue where pagination does not work correctly when the WC store page is set as the same page as the home page.

1.5.3 – 2020-03-30

  • FIX: issue with settings changes not showing their effects immediately (caching issue).
  • FIX: conflict with Social Warfare plugin (Social Warfare is doing something strange with WP_Query, but their plugin hasn’t been updated in months so it’s faster for us just to patch it from our side).

1.5.2 – 2019-12-17

  • UPDATE: bump tested versions.

1.5.1 – 2019-11-15

  • UPDATE: bump tested versions.

1.5.0 – 2019-08-30

  • UPDATE: updated .pot file for translations.

1.4.1 – 2019-03-19

  • Dev – Plugin author data updated.

1.4.0 – 2019-02-10

  • Dev – General Options – «Replace description» options added.
  • Dev – Admin Options – Product quick/bulk edit – «Clear» option added.
  • Dev – Bulk Settings – Products – Language codes added to the list.
  • Dev – Major code refactoring.
  • Dev – Admin settings restyled.

1.3.0 – 2019-01-29

  • Dev – Admin Options – «User roles to display in settings» option added.
  • Dev – Admin settings descriptions updated and restyled.
  • Fix singular view if category option is in use on bulk settings.
  • Fix duplicate tax_query parameters.
  • Improve nested tax_query parameters by making it simpler.
  • «Redirect URL per product» option added.
  • Bulk Settings – «array_merge(): Argument #1 is not an array» PHP warning fixed.
  • «Hide menu items» now also hides products items from menu (i.e. not only categories and tags).
  • Admin settings restyled.
  • Add WPML compatibility to bulk section.
  • Code refactored (admin settings).
  • Fix products terms hiding regarding multiple roles.
  • Fix redirect option forcing invisible products to be 404.
  • Make the plugin compatible with WPML plugin.

1.2.4 – 2018-12-25

  • Dev – Bulk Settings – Products – Product ID added to listing.
  • Dev – Bulk Settings – Products – WPML – Listing all languages products now.
  • Dev – Bulk Settings – Products – Code refactoring – Variations listing optimized.
  • Dev – Bulk Settings – Categories / Tags – WPML – Listing all languages terms now.
  • Dev – Bulk Settings – Categories / Tags – Term ID and term parent info added.
  • Dev – Plugin URI updated.
  • Improve ‹Bulk Settings› code combined with ‹Modify Query› option.

1.2.3 – 2018-12-06

  • Add compatibility with WPML plugin.

1.2.2 – 2018-08-13

  • Improve ‹alg_wc_pvbur_can_search› filter preventing the main visibility query to work on wp menu.
  • Fix category visibility replacing ‹key› by ‹taxonomy› on tax_query parameters.

1.2.1 – 2018-07-25

  • Allow other plugins to interact with invisible products query using the ‹alg_wc_pvbur_can_search› filter or passing a ‹alg_wc_pvbur_search› parameter on customs WP_Query queries.
  • Add WooCommerce minimum requirement.
  • Improve performance of invisible products search by saving the results of alg_wc_pvbur_get_invisible_products() in cache (Only the ids, not WP_Query).
  • Add action ‹alg_wc_pvbur_save_metabox› on metabox saving.
  • Add new function ‹alg_wc_pvbur_get_invisible_products_ids()› to get only the invisible products ids, with a cache option.

1.2.0 – 2018-06-29

  • Improve ‹alg_wc_pvbur_is_visible()› function. Get the terms isn’t working properly. Replace by wp_get_post_terms().
  • Add is_search() check to products hiding function to make sure it works on search results too.
  • Add new option to filter product terms hiding product categories and tags using the get_terms() function.
  • Improve invisible product detection on single product pages.
  • Add new option to hide all products, product categories/tags from user roles.

1.1.9 – 2018-05-24

  • Create «alg_wc_pvbur_get_invisible_products» function.
  • Change the way Modify query option works.
  • Add ‹alg_wc_pvbur_post__not_in› filter.
  • Add ‹alg_wc_pvbur_hide_products_query› action.
  • Update WooCommerce tested up to.

1.1.8 – 2018-05-03

  • Remove pro version checking.
  • Fix visible products logic.
  • Fix ‹alg_wc_pvbur_get_user_roles()› function exists.
  • Use composer to handle dependencies.

1.1.7 – 2018-04-18

  • Add composer
  • Sync bulk options with post meta values.
  • Change the way «product_by_user_role_pre_get_posts()» works. Now it really hides invisible product from queries fixing issues with pagination.
  • Add action ‹pvbur_save_product› after a product is updated.
  • Add a new admin option to hide categories from wp nav menu if there is no products to show.
  • Add a filter ‹pvbur_hide_empty_cats› to hide categories from wp nav menu if there is no products to show.

1.1.6 – 2018-04-12

  • Add ‹alg_wc_pvbur_is_visible› filter.
  • Add new option on admin to redirect to a page different from 404 in case a product is invisible.
  • Add new filter ‹pvbur_invisible_product_redirect› to redirect to a page different from 404 in case a product is invisible.

1.1.5 – 2018-03-26

  • Fix – Core – is_visible() – Bulk settings – Products – Returning false only.
  • Dev – General – Admin Options – «Product quick edit» option added.
  • Dev – General – Admin Options – «Products bulk edit» option added.

1.1.4 – 2017-11-12

  • Dev – Core – Possible «wp_get_current_user() undefined» error fixed.

1.1.3 – 2017-10-31

  • Dev – Admin Settings – Settings tab title updated.
  • Dev – Admin Settings – General – Description updated.

1.1.2 – 2017-10-30

  • Dev – Admin Settings – Bulk Settings – User roles subsections added.
  • Dev – Admin Settings – Meta box – Title updated.

1.1.1 – 2017-10-26

  • Dev – Admin Settings – Bulk Settings – «Save all changes» button added to each role’s section.
  • Dev – Admin Settings – Meta box – Title and descriptions updated.

1.1.0 – 2017-10-25

  • Dev – «Bulk Settings» section added.
  • Dev – Admin Settings – Meta box select – chosen_select class added.
  • Dev – Admin Settings – Meta box on product edit moved to side with low priority.
  • Dev – Code refactoring.
  • Dev – Saving settings array as main class property.

1.0.0 – 2017-08-30

  • Initial Release.