Bestseller High rating Documented

Product Visibility by User Role for WooCommerce

(6 customer reviews)

From: $39.99 / year

Display WooCommerce products by customer’s user role.

$39.99 Single site1 year of updates and support30-day money-back guaranteeBuy
$79.99 Unlimited sites1 year of updates and support30-day money-back guaranteeBuy

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

Plugin settings are located in “WooCommerce > Settings > Product Visibility”. Also to set user roles for each product, check “Product visibility” meta box on each product’s edit page.

General Options

Product Visibility by User Role for WooCommerce - General Options

Start by visiting “General” options section in “WooCommerce > Settings > Product Visibility by User Role > General”. Here you can choose how products should be hidden:

Hide catalog visibility
This will hide selected products in shop and search results. However, the product will still be accessible via direct link.
Default: yes
Make non-purchasable
This will make selected products non-purchasable (i.e. product can’t be added to the cart).
Default: no
Modify query
This will hide selected products completely (including direct link).
Default: no
Hide menu items
Hides nav menu items (i.e. hidden products, product categories and tags). Only products, product categories/tags marked in bulk settings will be hidden. This options uses the wp_get_nav_menu_items filter.
Default: no
Hide products terms
Hides products categories and tags from being displayed on front-end. Only categories/tags marked in bulk settings will be hidden. This options works filtering terms from get_terms() function.
Default: no
This option is useful only if Modify query is enabled. Redirects to a page different from 404, in case a product is considered invisible.
Default: None
Redirect: Redirect URL per product
This will add new “Product visibility: Redirect URL” meta box to each product’s edit page.
Default: no
Replace description
This will replace the content in the “Description” tab for the selected products.
Default: no
Replace description: Content to replace with
Default: None
For example:

<strong><a target="_blank" href="/wp-login.php" rel="noopener">Log in</a> to see the product description.</strong>

Per Product Options

After settings general option you can you can set included or excluded user roles for each product individually – go to product’s edit page and locate “Product visibility” meta box:

Product Visibility by User Role for WooCommerce - Admin Settings - Product Meta Box

Admin Options

Product Visibility by User Role for WooCommerce - Admin Settings - Admin Options

User roles to display in settings
Leave blank to show all available user roles.
Default: None
Admin products list column
This will add “User Roles” column to the admin products list.
Default: no
Product quick edit
This will add “User Roles” options to the product quick edit screen.
Default: no
Products bulk edit
This will add “User Roles” options to the products bulk edit screen.
Default: no

Bulk Options

Pro version also allows you to set user roles visibility options in bulk (for multiple products at once, product categories or product tags). In “WooCommerce > Settings > Product Visibility by User Role > Bulk Settings” you can set which products, product categories or tags are visible or invisible to certain role. If you fill in “Visible” option, then users with selected role will be able to see only chosen products. If you fill in “Invisible” option, then chosen products will be hidden for users with that role. If you leave any of the options empty – option will be ignored (i.e. all products will be visible).

Product Visibility by User Role for WooCommerce - Admin Settings - Bulk Options

Frequently Asked Questions

Q. I have a pagination issue: the number of products on each page turns out random depending on which products are hidden. What should I do?
A. You need to enable “Modify query” checkbox in plugin “General” settings section (in “WooCommerce > Settings > Product Visibility”).

Free vs Pro

Free Version Pro Version
Hide product’s catalog visibility
Make product non-purchasable
Hide product completely (modify query)
Set each product’s user roles
Set each user role’s products (in bulk)
Set each user role’s product categories (in bulk)
Set each user role’s product tags (in bulk)
Redirect a invisible product to a page different from 404
Hide menu items
Hide products terms
Replace product’s description

6 reviews for Product Visibility by User Role for WooCommerce

  1. Peter

    Hi! Thanks for this incrdible plugin.. works fine and excellent!

    I have a question… this plugin is compatible with WP All Import plugin? Do you an idea how can i put de cell on excel to import the values for visible and invisible user for each product? this fields accept multiple values .. so, i can’t find the way to import from excel to woocommerce

  2. Evan Gwin (verified owner)

    Let me start out to say, Pablo is hands down awesome! His customer service skills and expertise with woocommerce are incredible. I can to him with a problem that I was seeing using this plugin, and he helped fix the problem immediately. I cannot say enough good things about him. Very sincere, and will definitely make sure you are happy with the plugin you purchase.

    • Pablo Pacheco

      Thanks 😉

  3. afif

    very simple and easy to use… good plugin and recommended

    • Pablo Pacheco


  4. Domenico Saggese (verified owner)

    Excellent! It works in complicated situations, with many roles and many visibility rules, I have gourps of users who can see only some category of products and groups who can all products EXCEPT some category, and even users with more roles, one to be managed by this plugin and one to be seen by another plugin

    Support is quick, kind and effective

    • Pablo Pacheco


  5. charlescoates (verified owner)

    Support for this plugin was excellent from Pablo, Thanks for your support Pablo.

    • Pablo Pacheco

      Anytime 🙂

  6. dvelopit (verified owner)

    Great plugin works well. really fast support – Author even modified plugin for a new feature request. Highly recommended.

    • Pablo Pacheco


Add a review

Your email address will not be published. Required fields are marked *

Free version

This plugin is a premium version of free "Product Visibility by User Role for WooCommerce" plugin.


1.8.0 - 2022-06-01

  • NEW: when the "hide product categories/tags" (formerly called "hide product terms") setting is enabled, in addition to being hidden from categories/tags lists (as they were before), accessing them via their direct URLs will now return an "error 404 / category not found" page. Or, if the Redirect option is enabled, they will redirect to the URL you provided.
  • FIX: bug in the redirect feature which was causing some hidden products to redirect to the wrong place.
  • UPDATE: removed filter 'pvbur_invisible_product_redirect'; see new filters 'wpwham_product_visibility_by_user_role_invisible_product_redirect' and 'wpwham_product_visibility_by_user_role_invisible_product_is_404'.
  • UPDATE: renamed a few options under General Options, for better clarity.
  • 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.
  • FIX: issue with "hide all" (bulk settings) not working for certain queries.

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.
  • NEW: feature for replacing short description.
  • 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.
  • UPDATE: updated updater.

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.
  • FIX: issue where unrelated posts/pages hidden when using bulk settings on the guest role and using only the "visible" products option.

1.5.4 - 2020-03-30

  • FIX: issue with settings changes not showing their effects immediately (caching issue).
  • FIX: issue with site search results showing incorrect count of results (i.e. hidden products included in results count).
  • 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.3 - 2019-12-17

  • FIX: issue where bulk settings "hide all" hides pages and posts, not just products
  • UPDATE: add filter 'wpw_pvbur_pro_bypass_fix_singular_tax_query'

1.5.2 - 2019-11-15

  • UPDATE: bump tested versions

1.5.1 - 2019-10-29

  • FIX: issue where certain combinations of settings could cause unintended pages to return 404

1.5.0 - 2019-08-30

  • NEW: implement software licensing system; allows for one-click updates of the Premium version
  • 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.