Use WooCommerce role based pricing with product tables

December 15, 2020

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!

Add role-based pricing to your WooCommerce site now!


  1. Luis
    April 27, 2021 Reply

    Hi Kate, let me tell you that I am really surprised on how Wholesale Pro and Product Table works together. I am really happy with those two plugins. I received even more that was expecting. Congrats.
    I was trying to find out in your KB on how to hide crossed out regular prices on the product table, and I couldn't. So I tried this and it works perfect. So, in case you can share it, I am attaching what I use to do it, in the CSS custom.

    table.wc-product-table tbody td.col-price del{
    display: none


    Best regards

    • Jae Narra
      April 27, 2021 Reply

      Hi, Luis. Thanks for your comment and for sharing this with us! A few other people have previously requested this feature to be added directly to our plugin so and we’re tracking the amount of demand to help us decide whether to prioritize it in the future. I have added your ‘vote’ to our feature request list, and we will let you know if we add this to a future version of the plugin. In the meantime, I'm sorry that this isn't possible but I'm glad this CSS code worked for you.


  2. 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,

      • Reza
        February 15, 2021 Reply

        Hi again.
        So thanks for the great explanation, could you please send the related command(code/function) for that?
        I've written my email there

        Kind Regards

        • Edge
          February 16, 2021

          Hi, Reza.

          Thanks for getting back to me. We provide in-depth Developer Documentation to help you get started.

          Additionally, you can also post a job on Codeable where you can discuss your needs with their pre-approved WordPress experts, who will send you a quote. We have partnered with them to provide plugin customization and developer-level assistance for our customers.

          Codeable has several developers who are experienced in customizing our plugins - to contact and request a quote from them, select Domagoj Kovacevic, Krasen Slavov, Onur Demir, Liam Bailey, Nitin Yawalkar and Felipe Elia as your preferred experts.

          I hope this helps point you in the right direction. Let me know if you have any more questions.

          Best regards and keep safe,

Please share your thoughts...

Your email address will not be published.