Use WooCommerce role based pricing with product tables

August 14, 2020 2 comments

WooCommerce user role based pricing product table

There are lots of WooCommerce role based pricing plugins which show discounted prices to certain WordPress user groups. But which ones can you use with non-standard store layouts, such as a product table view?

We’ve tested the official WooCommerce Dynamic Pricing plugin, plus the the free WC Role Based Price plugin. They both work beautifully with our WooCommerce Product Table plugin.

And if you’re using Product Table with its sister plugin, WooCommerce Quick View Pro, then the role-based pricing will work in the quick view lightbox too!

I’ll tell you how all these plugins work.

Want to show different prices for each user? Check out our tutorial about customer specific pricing instead.

Who needs WooCommerce role based pricing with product tables?

WooCommerce Product Table users often ask us how they can add role-based pricing. They come from all industry sectors. First, let’s look at some popular use cases:

WooCommerce wholesale stores

WooCommerce wholesale plugins

Lots of people use Product Table as a WooCommerce wholesale plugin because it creates a trade-friendly layout with small images and extra product data. It’s ideal for wholesale sites where customers are already familiar with your products and place regular orders.

You can use a WooCommerce role based pricing plugin to avoid having to create separate products for public and wholesale users. Simply create a separate wholesale role with the User Role Editor plugin, and add a wholesale price for each product.

You can use product tables throughout your store. Or if you only want to show product table layouts to wholesale users, then you can create a hidden wholesale area (e.g. using a password protected page or membership plugin). Retail customers will see the standard store layouts and prices, whereas wholesale users can view the trade discounts in the wholesale area.

One-page WooCommerce quick order forms

Online restaurant order form

WooCommerce Product Table is perfect for creating a bulk order form. Customers can tick all the products they want, select variations and other types of add-on, and add to the cart in a single click.

You can give discounts to specific user roles or groups via a user role pricing WooCommerce plugin. Customers will log into your website as normal, and will receive the correct discounted price for their user role.

Read our tutorial on how to create a WooCommerce order form.

How it works

WooCommerce role based pricing product table

Role based discount displayed using WooCommerce Product Table with the official Dynamic Pricing plugin
You can use either the official WooCommerce Dynamic Pricing plugin or WC Role Based Price with WooCommerce Product Table. The table plugin lists your products in a filterable table layout or one-page WooCommerce order form. The role based pricing plugins give discounts depending on the logged in user’s role (e.g. administrator, editor, wholesale, etc.).

Note: Of course you only need WooCommerce Product Table with one role based pricing plugin, but I’m telling you about three to give you a choice.

Any user role that doesn’t receive a discount (e.g. guests/logged out users or subscribers) will see the standard price in the Price column of the table. There will be no indication that other prices are available to other user roles.

If you’ve set up role based pricing for specific user groups then logged in users with these roles will see their discounted price. The main price will be crossed out, showing the discount they are getting. If a particular type of user doesn’t have a discount available, then the full price will be shown to them. For variable products, the discount will be shown when they select a variation from the dropdown.

If your WooCommerce tables include add to cart buttons or checkboxes, then customers can select a quantity and click to buy. The product will be added to the cart with the correct discounted price.

Which WooCommerce role based pricing plugin should I use?

As you can see, we’ve tested WooCommerce Product Table with 3 different user role based pricing plugins. You only need one, so read about each one and choose the best one for your site.

If you need a recommendation, then I would recommend the official WooCommerce Dynamic Pricing plugin. This plugin is from and it’s always a good idea to use official extensions where possible. This helps to ensure compatibility with other plugins and you can be sure of receiving good support compared to a free or less well-known plugin.

Alternative option – create hidden product categories for each user group

WooCommerce private store login form
Role based pricing plugins assume that you have a single version of each product, with different pricing for different user levels.

If you prefer, then you can achieve a similar result using the WooCommerce Protected Categories plugin. This plugin lets you create completely separate product categories (each with their own products) and hide them from public view.

Instead of integrating with WordPress user levels, it protects each hidden category with a simple password.

This is a useful alternative if you want separate versions of each product. For example, you’ll need separate products if there will be other differences as well as pricing (e.g. unique SKU’s or descriptions).

Give the password to each user, and they can enter it on the category login page provided by the plugin. On entering a correct password, they will be redirected to the category containing the products for their user group. These products are only visible to people with access to that category. No one else will be able to see the role-specific pricing.

You can use WooCommerce Password Protected Categories with WooCommerce Product Table by adding the table layout to the category archive template. The customer will unlock their hidden category and see the category page with a product table layout.

A few warnings

  • If you plan to use a bulk discounts plugin with WooCommerce Product Table, then you must ensure that caching is switched off on your product table pages. You’ll need to exclude these pages from any caching plugins or the caching added by your web host, and disable the caching option on the WooCommerce Product Table settings page. This ensures that each user sees the correct pricing, instead of viewing a cached version of the product table.
  • WC Role Based Price does not work with the lazy load option in WooCommerce Product Table.

Set up user role based pricing with product tables

I’ve suggested 2 easy ways to charge different prices to different user groups in WooCommerce. Read about how each one works, and choose the method that’s best for your site.

To set up product tables with role based pricing, you need WooCommerce Product Table plus either WooCommerce Dynamic Pricing or WC Role Based Price.

Install your chosen 2 plugins, follow the instructions in the documentation, and you’re good to go!

WooCommerce Product Table
Add role-based pricing to your WooCommerce site now!

Katie Keith

An active member of the global WordPress community, Barn2 Co-Founder Katie loves collaborating with other plugin companies. Her articles have been published on high profile sites including WPTavern, Torque and IndieHackers. She oversees all plugin support and deals with 'Tier 2' support requests about how to use Barn2's plugins in advanced ways.


  1. Reza
    July 13, 2020 Reply

    Dear Katie
    First of all accept my congratulations for this amazing Plugin.
    My name is Reza. I'm a plugin developer and generate a custom product table. I want to display Dynamic Pricing column in my column, but i can't fetch data.
    Could you please help me for that?
    How did you fetch Dynamic Pricing for each products?
    It's very great if you send for me your functions o solutions.

    Thanks in advanced.

    • EJ
      July 13, 2020 Reply

      Hi, Reza. Thanks for the kind words.

      Our plugin pulls the WooCommerce product data directly from the WordPress database of a site and displays the exact values in columns of a dynamic table that you can filter, sort, and search. The product table merely shows the exact or as-is product data values that are stored by WooCommerce, hence rather than our plugin fetching dynamic pricing, it is the pricing plugins that replace the price in WooCommerce, which our plugin then simply inherits. Does that make sense?

      Best regards,

Please share your thoughts...

Your email address will not be published.