WooCommerce user role pricing in 2 easy steps
Would you like to set different prices for different users in WooCommerce? In this article I’ll show you how to set up WooCommerce user role pricing for simple and variable products, including user role discounts, so that you can offer your customers different prices according to their user role.
Setting prices by user role in WooCommerce
Through this post, we’ll look at what user roles are in WooCommerce and WordPress. We’ll also look at what benefits you might get from WooCommerce user role pricing.
We’ll examine an easy way to create new user roles then focus in on WooCommerce user role discounts with some typical real life examples of how to use discounts based on user role.
Finally, we’ll look at a simple method to set prices by user role in WooCommerce. This will include a way to set prices rules globally, by individual products and by variation.
If you’d like to skip straight to the tutorial, click here.
What are WordPress user roles?
Before we start looking at prices, let’s summarise quickly what we mean by user roles. WooCommerce uses the standard WordPress ‘Roles’ system, which allows the site owner to control what users can do.
For example, users with the role of ‘Administrator’ are able to perform any task they wish on the website, including publishing posts, creating new users, moderating comments, and so on.
There’s a complete guide to WooCommerce user roles here.
What is the difference between a WordPress role and a capability?
Each of the ‘tasks’ mentioned above, like publishing posts, is called a ‘Capability’. Each role is made up of one or more capabilities.
There’s more information on WordPress roles and capabilities here.
What user roles does WooCommerce add?
By default, WooCommerce adds two new user roles: Customer and Shop Manager. When a user makes a purchases or registers on the site, they’re assigned the ‘Customer’ role. The ‘Customer’ role has very limited capabilities, such as viewing previous orders.
The ‘Shop Manager’ role has additional capabilities which allow users with this role to manage WooCommerce products in the dashboard and to view WooCommerce reports.
Why set prices by user role in WooCommerce?
You’ve probably got your own reasons for wanting to set different prices for different users. However, here are some examples where user role pricing could be used:
WooCommerce user role pricing for members only stores
If you are running a members only store, you might want to offer your members different pricing for products depending on their membership level. For example, ‘Gold’ members will get products 10% cheaper than ‘Silver’ members.
You can find out more about how to create membership sites in WooCommerce here.
Offering different prices for wholesale users is a very common usage of role based pricing. Wholesale customers are likely to be buying more products so you want to offer them a discount.
A really quick way to set up differential pricing for wholesale customers is to create a new user role called ‘Wholesale’. Then, using the method below, set a different price for customers with the Wholesaler user role.
You can take a look at this tutorial on building a wholesale store in WooCommerce.
Would you like to offer discounts to your staff when they’re buying products from your online store? Just assign each staff member the user role of ‘Staff’ then use the method below to create their discount.
Discounts for existing customers
Another common, yet very simple, role based pricing rule is to offer existing customers a discount. It’s an easy way to encourage customers to make return purchases.
To create discounts for existing customers, just use the method below, assigning a discount to the ‘Customer’ role.
How to create new user roles in WordPress
A key part of setting different prices for different users in WooCommerce is user roles.
You can create new user roles using the WooCommerce membership plugin – Members Only. This plugin has a simple interface to allow you to create new roles, edit existing roles, and assign capabilities to roles.
WooCommerce Members Only
Protect your content and sell members-only products
You can also take a look at this article on automatically setting user roles after customers check out.
WooCommerce user role discounts
Put simply, WooCommerce user role discounts let you offer customers special discounts based on their user role. This is great for online stores that:
- Sell to different types of customers, e.g. regular customers, wholesale buyers, and staff members.
- Offer premium memberships, e.g. bronze membership, silver membership, and gold membership.
- Need to offer subscribers a percentage-based discount on their purchase to encourage repeat purchases.
Depending on the type of online store or ecommerce website you’re running, you might have different user roles set up with different pricing rules for each type of customer.
What do we mean by WooCommerce user role discount?
A WooCommerce user role discount is when you offer customers discounts on WooCommerce products based on their user role. For example, let’s say you have the following user roles added to your online store:
- Customer. These are regular customers that you’d like to sell products to at their regular price.
- Wholesale Buyer. Your wholesale customers tend to purchase products in larger quantities e.g. in the dozens. You want to offer them 15% off on their purchase assuming they purchase at least two dozen product units.
- Staff. As an online seller, you want to offer staff members a 5% off on their total purchase amount.
So, your customers will see a different product price depending on their user role.
Real-life examples of how WooCommerce user role discounts are used
Store owners might consider offering their customers a WooCommerce discount based on user roles for a variety of reasons. Let’s take a closer look at some popular use case scenarios:
Example #1: Wholesale customers and B2B buyers
If you sell products to wholesale customers or other businesses, you might need an easy way to offer special discounts. This way, you can avoid having to add each WooCommerce product twice to your online store – once with pricing for regular customers and once for your wholesale customers.
Instead, you can follow the steps outlined below to create a separate user role for wholesale customers (or B2B buyers). Once that’s done, you can use the WooCommerce Fees and Discounts plugin to create a WooCommerce discount by user role.
Example #2: Guest checkout and customers with user accounts
You probably already know that, as an online store owner, you can benefit from building an email list. You can use it to let customers know about new products, offer discounts and coupons, and reduce your abandoned cart rates. This is also a great way to boost sales and increase your average order value.
One way to encourage customers to create a user account on your store rather than availing the guest checkout option is by offering a percentage based discount to customers with user accounts. In other words, if a customer creates an account on your store, they’ll qualify for, say, 5% off on their total purchase.
The easiest way to implement different pricing rules for customers that create a user account versus customers that opt for guest checkout is by offering a WooCommerce user role discount.
Example #3: Staff discounts
Many store owners offer exclusive discounts on products to their staff members. You can create pricing rules for staff members in two different ways:
- All staff members get the same percentage-based discount on their purchase e.g. 10% off.
- Staff members with different user roles get different WooCommerce user role discounts. For example, Store Managers get 10% off whereas Customer Support Representatives get 5% off.
This is a great way to incentivise staff members to purchase products from your store rather than going to competitors.
Example #4: Membership sites and SaaS products
If you run a membership site or sell SaaS products, you might want to offer customers with premium subscriptions a larger discount. Creating a WooCommerce discount based on user role is the easiest way to do this.
For example, let’s say you have the following membership packages and an exclusive members-only store where you sell merchandise:
- Bronze package for $99 per month. Members that subscribe to this package will have to pay the full price for exclusive products.
- Silver package for $129 per month. Members who’ve subscribed to the Silver package qualify for a 5% discount on their total purchase.
- Gold package for $159 per month. Gold members qualify for a 15% discount on their total purchase.
Similarly, you can follow the same approach to sell SaaS products to customers. For example, you might offer customers who sign up for the Premium plan a 10% off on all add-ons whereas customers on the Basic plan would pay full price.
How to set different prices for different users in WooCommerce
Okay, now let’s look at exactly how to set different prices for different users in WooCommerce.
We’re going to look at three different methods:
- Adjusting prices globally according to user role. This means you can apply a discount or charge an extra fee for all products in your store based on user role. This is great if you want to give certain customers the same discount on all products across the board.
- Adjusting specific product prices according to user role. With this method, you can apply a discount or fee to a specific product based on user roles. So you can give your Wholesale customers a 15% discount on Product A, 10% on Product B, etc
- Define different prices per product for user roles. In this method, you enter different prices per user role.
Let’s take a look at how to do each of these.
Step One: Install WooCommerce Fees and Discounts
In order to be able to set product prices by user role, we’ll need a copy of the WooCommerce Fees and Discounts plugin.
WooCommerce Fees and Discounts
Create powerful pricing incentives quickly and easily
You can follow this guidance for installing the plugin.
Step Two: Enable user role pricing
WooCommerce Fees and Discounts lets us set prices by user role. To enable this feature, go to WooCommerce > Settings > Fees and Discount and check the ‘Enable user role pricing’ option.
Enabling this option will activate an additional item called ‘User Role Pricing’ in the sub-menu under the tabs.
1. Setting user role prices globally
Fees and Discounts allows you to set user role pricing globally or on a product to product basis. If you want to set your user role pricing globally – so that a single rule will apply to all products – then click the ‘User Role Pricing’ menu item.
You’ll see a list of all your site’s user roles alongside fields for the adjustment types and amounts.
All you need to do is set the type of pricing adjustment (see below for a list) and an amount against each user role. If you don’t want to set different pricing for a user role, leave the adjustment field set to ‘No adjustment’.
Types of pricing adjustment
WooCommerce Fees and Discounts lets you adjust the product price in four different ways:
- Fixed Discount – reduces the price by a set amount
- Fixed Fee – increases the price by a set amount
- Percentage Discount – reduces the price by a set percentage
- Percentage Fee – increase the price by a set percentage
(By the way, there’s specific guidance on WooCommerce discounts here and guidance on WooCommerce percentage discounts here.)
2. Setting user role prices for specific products
If you only want to set role-based pricing for certain products, you can do so from the Product Data section. Edit the product that you’d like to set the role-based price for, clicking on the ‘User Roles’ tab in the ‘Product Data’ section.
As with the global settings, you’ll see a list of each role with fields to set the adjustment type and amount for each.
Setting user role discounts for variations
Finally, if you want to set different pricing rules for individual variations, you can do so by setting the rules per variation.
Click the ‘Variations’ tab in your Product data section, then set role-based fees and discounts per variation:
3. Defining specific product prices by user role
Finally, our third method is specified different prices for a product rather than the first two methods which allowed use to specify adjustments to the main price.
To define specific role-based product prices in WooCommerce:
- Go to WooCommerce > Settings > Fees and Discounts > User Role Pricing
- In the Role Price Fields section, enter the roles that will need specific prices. Defining roles here helps to keep the interface from being cluttered from too many fields
- If you want to set specific prices for variations then check the ‘Role-based prices for variations’ option
- Save the settings
- Go to your product and enter the prices for each role. If you leave a price field empty for any roles, the price will just default to the standard product price
In the image below, we’ve enabled role pricing just for the ‘Shop manager’ role.
Now, every product will have an extra price field specifically for the Shop manager price.
It’s as easy as that.
User role pricing is just one example of dynamic pricing in WooCommerce. And setting different prices for different users is a common feature of many WooCommerce sites.
There are some further tutorials using the Fees and Discounts plugin in these posts:
Do you know any plugin that allow to set final price per product for a role, instead of percentage discounts?
Do you mean set different prices by user role? I don’t know of any. Fees and Discounts allows you to set discounts either by percentage or a fixed amount per product – so I think this amounts to the same thing?
is there a way to add a 2nd price list to woocommerce ? a totally seperate price list ? not based on the main price list ?
Can you confirm what you mean by a second price list?
Will this plugin work if the user has multiple roles assigned to him?
John as the primary role A and also has the role B assign to him!
Role A offer a discount on product ABC
Role B offer a discount on product XYZ
So John should get the discount for the product ABC and XYZ
In my use case a user could get up to about 10 different roles.
Hi Philippe – yes, that’s correct. This will work if the user has multiple roles.
Is there a way to display multiple prices? So if a User has user role A and B, when they login they will see both prices for the product. For our use case, while a customer would have only one user role, a sales person could be assigned multiple user roles so they could see the prices for each customer.
Yes, you can choose to display prices for all available roles: https://pluginrepublic.com/documentation/display-alternative-price-for-specific-role/.
Hi, sorry if my english writing bad.
can user roles have his own tier price also? example :
buy 1-5 : 20usd
buy 6-10 : 15usd
for user role Silver :
buy 1-5 : 17usd
buy 6-10 : 12usd
for user role Gold :
buy 1-5 : 15usd
buy 6-10 : 8usd
is this possible to have tier price for each user role? tq..
You can combine price tiers and user role pricing. So you can create tiers for 1-5 products, 6-10 products (-5USD), etc.
Then you can set role-based discounts. So for Silver, the discount could be 3USD; for Gold, the discount could be 5USD, etc.
Hi I was wondering if you are able to exclude specific products. For instance, we have wholesale customers on the site that get a flat 35% discount on all products, however, we have recently introduced packs and would like to sell them at full price as they are already discounted. Is this possible with your plugin?
Yes, you can set discounts by product category. So you can assign the packs to a specific category and exclude that category from any pricing rules.
Hi, will this plugin work with WooCommerce Product Add-Ons Ultimate? Thanks
will the option 3 work for variable products?
Yes, this plugin works with Product Add-Ons Ultimate. Add-Ons Ultimate also allows you to set different add-on prices based on user role.
Option 3 will work with variable products.
We have arround 10 products and 4 types of roles for clients: Client1, Client4, Client5 and Client6. And each product has 4 different fixed prices, but the prices has nothing to do with the regular price, so it’s not a %discount or something like that. Is posible to do that?
Yes, you can do this by setting specific prices per product for each role: https://pluginrepublic.com/set-prices-user-role-woocommerce/#/h-3-defining-specific-product-prices-by-user-role.
I want to know if with this plugin we can change price by specific user not by user role.
Or if it can’t be possible with this plugin, will you know plugin can do this.
Do you want to create a different price for every product for every single user? If so, how many products and how many users do you have?
Yes, exactly !! I want apply that with a lot of product. Now, i have not idea number exact of product and number exact of user. But, our site web will be a e-commerce for B to B business like “ali-express”
Thanks. I don’t know of a solution that will allow you to set a different price for every user for every product.
You mention that you can set up discounts by product category but I don’t see those options in any of the screenshots. (Maybe I missed it)
Please confirm that I can set set discounts by product category
And can I restrict page access on a page by page basis, to user types
And finally, can I do a page redirect after logging in?
Yes, you can set up discounts by product category. Please see this article for more information: https://pluginrepublic.com/woocommerce-category-discount/.
You can currently only restrict products and posts by user roles, not pages.
Yes, you can redirect after logging in.
Can I change User Name to own membership level name ? (Customer > Silver, Contributor > Gold, etc..) , also is there any way to assign roles automatically whenever customer sign up WooCommerce subscription ? In other words, our store has Free membership (sign up only – regular price), paid membership ( pay annual fee via Woo Commerce Subscription ) and get 10-20% discounts.
You can assign a role automatically when a user purchases a product; you can also automatically assign roles when the user registers.
Are there message prompts that can be turned on, to remind users to register/login to receive the member-role discount price? If yes, will the prompts work with the allow guest to login/register during checkout setting? Also, can the plugin be setup to show a strikethrough price next to a VIP Member discount price?
The plugin itself doesn’t have any prompts to remind the user to log in but this could be easily accomplished with a snippet. I’m happy to help with that if required.
The plugin doesn’t display a strikethrough but you can optionally display different price levels to indicate the discount.
Would this option show ALL user role prices, or can you have it to just show e.g. Bronze and Gold (but not silver)? Thanks
You could use some simple CSS or a snippet to hide certain user role prices if you wished. We could help you with that.
Is this plugin able to level up the role automatically?
For example, a new customer (Silver) who buys a product and accumulates a total amount of purchases throughout the month or throughout the year up to 50,000.- The system will change the role of that customer up to Gold.
And Gold customers accumulate purchases of more than 100,000.- The system will automatically change the role of that customer to the Platinum level, etc.
The plugin currently doesn’t level up roles. That would require a customisation.
Is there a way to show a 15% discount on all products site-wide, that is visible to everyone whether they are a customer or not, but the discount can only be accessed if you register? So they can see the discount, add products to the cart but then will need to register to move forward with the discounted purchase, otherwise, they will pay full price. We are trying to push customer sign-up.
Yes, there’s an option to display each role price – so users can see the standard price and the discounted price for existing customers.