If you want to give away a product for free, or set its price to zero, only for your wholesale customers, you need two separate things to work correctly at the same time: a wholesale price that actually saves as zero, and a way to stop retail customers and guests from seeing that same product.
Setting a wholesale price of zero uses WooCommerce Wholesale Prices, while the Restrict To Wholesale Roles visibility filter in WooCommerce Wholesale Prices Premium keeps that free product hidden from anyone who isn’t one of your wholesale roles.
These are two separate features, and it is easy to confuse them. Setting a zero wholesale price only controls what your wholesale customers pay. It does not, on its own, hide the product from retail customers. The Restrict To Wholesale Roles filter is what actually controls who can see the product at all.
Requirements
- WooCommerce
- WooCommerce Wholesale Prices installed and activated, with at least one wholesale role set up.
- WooCommerce Wholesale Prices Premium installed and activated. The Restrict To Wholesale Roles visibility filter used in this article is only available in the Premium plugin.
Set a wholesale price of zero
WooCommerce Wholesale Prices lets you set a separate price for each wholesale role directly on the product. Setting this to zero makes the product free for that role, without affecting the regular price shown to retail customers.
- Edit the product.
- On the General tab of the Product data panel, scroll down to the Wholesale Prices section.
- Find the wholesale price field for the role you want to give the product away to, and enter 0.
- Click Update or Publish to save the product.
Restrict the product to wholesale customers only
Setting a wholesale price does not hide the product from anyone. To stop retail customers and guests from seeing the product at all, use the Restrict To Wholesale Roles field. This field is available on every product’s edit screen, in the Publish box, once WooCommerce Wholesale Prices Premium is active.
- Edit the product.
- In the Publish box, find the Restrict To Wholesale Roles field.
- Select the wholesale role or roles that should be able to see the product. Leave the field empty to leave the product visible to everyone.
- Click Update or Publish to save the product.
Once a role is selected, anyone who is not logged in as that role, including guests and other customer roles, is redirected to your shop page if they try to open the product directly. The product is also left out of your shop page, category pages, and search results for anyone who is not allowed to see it.
Does this affect administrator or shop manager accounts?
No. Administrator and shop manager accounts can always see every product, regardless of what is selected in Restrict To Wholesale Roles. Use a customer account with the wholesale role assigned to it if you want to confirm what the product looks like for that role.
What does “Only Show Wholesale Products To Wholesale Customers” do?
WooCommerce Wholesale Prices Premium also has a separate setting, Only Show Wholesale Products To Wholesale Customers, found at Wholesale → Settings → Wholesale Prices → General. This setting hides products that have no wholesale price at all from your wholesale customers, so they are not shown regular retail-only products mixed in with their wholesale catalog.
This setting has nothing to do with hiding a product from retail customers, and it does not need any special workaround for a wholesale price of zero. A wholesale price of exactly 0 already counts as a wholesale price being set, so it is never hidden by this setting.

Troubleshooting
My free product still redirects customers to the shop page. What should I check?
This usually means Restrict To Wholesale Roles is not selecting the role you expect, or the zero price was applied through a category-level discount rather than entered directly on the product. Open the product, check that the wholesale price field itself shows 0 for the role, and confirm the correct role is selected in Restrict To Wholesale Roles.
I set the price and the restriction, but a retail customer can still see the product.
Confirm you clicked Update or Publish after making the change, and that the retail customer’s account does not have a wholesale role assigned. Clear any page or object cache on your site, then reload the product page.
I set a wholesale price of zero, but it isn’t showing as free in the cart or checkout.
Check whether the customer’s account actually has the wholesale role assigned. Also check the product’s Wholesale Pricing Options: role level and product category level wholesale discounts can override a product’s own wholesale price unless Disregard Wholesale Role Level Wholesale Discount or Disregard Product Category Level Wholesale Discount is checked for that product.
Frequently asked questions
Can I restrict a product to more than one wholesale role at once?
Yes. The Restrict To Wholesale Roles field accepts multiple roles. The product remains visible to any customer logged in as one of the selected roles.
What happens if I leave Restrict To Wholesale Roles empty?
The product is visible to everyone, including guests and retail customers. This is the default state for every product.
Do I need WooCommerce Wholesale Prices Premium just to set a wholesale price of zero?
No. Setting a wholesale price, including zero, only requires the free WooCommerce Wholesale Prices plugin. WooCommerce Wholesale Prices Premium is only required for the Restrict To Wholesale Roles visibility filter that hides the product from other customers.
Does restricting a product also remove it from cross-sells, up-sells, and related products?
Yes. Restricted products are filtered out of cross-sell, up-sell, and related product lists for any customer who is not allowed to see them.
Can I restrict an entire product category instead of individual products?
Yes. On the product category edit screen, WooCommerce Wholesale Prices Premium adds a Wholesale Role Filter field. Selecting a role there restricts every product in that category, without setting Restrict To Wholesale Roles on each product individually.
Will retail customers see a price of $0.00 if they somehow view the product?
If Restrict To Wholesale Roles is set correctly, retail customers cannot open the product page at all, so this does not come up. If the product is not restricted, retail customers see whatever price applies to their own role, the regular WooCommerce price, unaffected by any wholesale price you have set.
Does this work for variable products?
Yes. Wholesale prices can be set per variation, and the Restrict To Wholesale Roles field is set once at the parent product level and applies to all of its variations.
Help & support
We have a dedicated support team for Wholesale Suite who knows our products, WooCommerce, and the industry very well. You’re welcome to make use of their expertise at any time, worldwide.
If you are an existing customer please go to the support ticket request form and send us a message.
If you are a free plugin user, please send us a support request on the forum. We actively monitor the WordPress.org support forums for the free plugin and help our users there as best as we can.


