How to add WooCommerce role based pricing


Setting up user role based product pricing on your online WooCommerce store is actually quite easy to do. Unfortunately though, you do need a plugin installed to be able to do this. It does not come as a standard feature out of the box with WooCommerce. Implementing WooCommerce role based pricing can be important for a variety of reasons. They include:

  • You may want to discount products for a specific customer segment or subset
  • Or maybe you want to offer your products at wholesale prices to certain customers and retail to others
  • You’re potentially wanting to test price structures to different types of customers
  • And many more reasons!

Whatever the reason for you wanting to implement WooCommerce role based pricing, this guide, will show you exactly how to get it setup on your website.

Step 1: Install a WooCommerce role based pricing plugin

As discussed earlier, we firstly need to install a plugin that enables role based pricing. There are a number of solutions for you to choose. Here at WP Geeks we’re actually in the process of building out our own solution. That’s not quite ready yet, and in the mean time, we recommend that you use this WooCommerce role based pricing plugin from the WordPress plugin repository.

Go ahead and install it to your WordPress/WooCommerce website. Once it’s installed, come back to this page and move on to step 2.

Step 2: Decide on your pricing strategy for each user role

At this point it’s a good idea for you to decide on a pricing strategy for your products and user roles (if you haven’t done so already). There are some considerations that you’ll need to make:

  • What products do you want to apply role pricing to? All of them? A specific subset?
  • Which user roles should have adjusted pricing?
  • By how much should you adjust the prices for each selected role?

Make these decisions, and move on to step 3 when you’re done.

Step 3: Configure the role based pricing settings

Now that the plugin is installed and our strategy decided upon, let’s do some quick configuration. First, under the WooCommerce menu on the WP Admin sidebar, click “Role Based Price Settings”. From this page, you should define which user roles you would like to make available to set specific prices for and you are also able to adjust the labels for the pricing fields. Here is what the configuration looks like on our demo store.

WooCommerce Role Based Pricing Settings

Step 4: Select product to apply the role based pricing to

Firstly, find the product (or products) that you would like to apply your special pricing to. Unfortunately, you’re going to have to adjust the pricing to one product at a time. There is currently no setting to modify role based pricing in bulk. So you will need to repeat steps 4-5 for each product you pick.

Click “Products” on the left hand side sidebar in WP Admin. Now select the product you’d like to apply the pricing to and click through to the edit page. Here’s what the product listing page looks like.

Select Product Price By Customer Role

Step 5: Configure the product prices for each role.

On the product page, scroll down to the “WC Role Base Price Editor” meta box which should be under the “Product data” meta box. You’ll notice a list of user roles (select in step 3) and the ability to customize the price for each role. Firstly, click “Enable Role Based Pricing” and then start adding the prices in for each role. This is what the meta box should look like.

WooCommerce Role Based Pricing

One that’s done, save and move on to the next product (if you’re applying this to multiple products).

And that’s all that there is to it. We really hope that you found the step by step guide to WooCommerce role based pricing useful. Let us know if you have any questions or comments down below.

If you’re a developer, you may also be interested in our snippet which allows you to set customer specific pricing.


Leave a comment

Your email address will not be published.

This site uses Akismet to reduce spam. Learn how your comment data is processed.