WooCommerce: How to Set Different Prices Based on User Role?

B2C WooCommerce stores can also have a B2B section. Wholesalers can offer different prices based on different criteria. Subscription stores can offer lower prices to current members.

Either way, setting different WooCommerce prices for different users (“based on user role”) is not that difficult. All you need is a plugin (or a stack of plugins, depending on your custom requirements), and you can immediately show different prices if the logged in user has a specific role or “capability”, as well as targeting active memberships, active subscriptions or other criteria.

If you want to learn more about user roles and capabilities, I suggest to take a look at the WordPress documentation: https://codex.wordpress.org/Roles_and_Capabilities – you’ll know WordPress has 6 default roles (administrator, editor, etc.) and that WooCommerce adds another one (customer). Other plugins can set additional roles – for example https://wordpress.org/plugins/members/ by Justin Tadlock, a very popular WordPress developer.

So, while “targeting” user roles is quite easy, the only difficult part is to choose the right “user role based pricing” product. As usual, when picking a plugin, you always need to consider its functionalities as well as the quality of its support team, long-term reliability, code cleanliness, frequent updates and total number of sales.

Today, we’ll take a look at the plugins I recommend, together with their pros and cons. If you use different stacks or custom functionalities, feel free to interact via the comments.

1. YITH WooCommerce Role Based Price by YITH (€59.99)

Now that you’ve chosen to assign different prices to a certain user role, with this plugin you can do even more than that. There are also nice third party plugin integrations (such as currency switchers).

Here are some of the best functionalities offered by YITH WooCommerce Role Based Price:

  • Edit price (percentage or amount) for a single product, product category or product tag, based on user role
  • Apply different pricing to either regular or sale amount
  • Toggle visibility of Add to Cart button, price, role based price, based on user role
  • Show/hide product price tax depending on user role
  • Works with variable products
  • Works with Currency Switcher for WooCommerce by Aelia

Typical scenarios:

  1. 10% off to all customers with user role “wholesaler”
  2. $20 off (category “wholesale”) to all customers with user role “resellers”
  3. Hide product prices unless logged in (wholesale shop only)
Adding a new pricing rule to a single product (% or amount) – YITH WooCommerce Role Based Price Plugin
Adding a new pricing rule to a whole product category – YITH WooCommerce Role Based Price Plugin

2. WooCommerce Dynamic Pricing by WooCommerce / L. Stark ($129)

Dynamic Pricing by WooCommerce can not only be used to change the pricing of target user roles – it can also do bulk discounts (based on quantities). Here’s the reason of its cost – when you have different prices or discounts for wholesalers, you usually also want to give bulk discounts (e.g. buy 5 get 10% off) to all users.

This plugin has the following functionalities:

  • Edit price (percentage or amount) for a single product or product category, based on user role and/or product quantity and/or cart total
  • Works with variable, composite, grouped, etc. products
  • Integrates with other WooCommerce.com plugins

Typical scenarios:

  1. 10% off to all customers with user role “wholesaler”
  2. $20 off (category “wholesale”) to all customers with user role “resellers”
  3. 5% off when a customer buys 5 items or more
  4. 10% discount to all items in the “chairs” category
  5. $10 off if cart total > $100
  6. Buy product X, get 5% product Y
Adding a new dynamic pricing rule to a single product (% or amount) – WooCommerce Dynamic Pricing Plugin
Adding dynamic pricing rules to user roles – WooCommerce Dynamic Pricing Plugin
“Buy one, get one free” scenario – WooCommerce Dynamic Pricing Plugin

 

Rodolfo Melogli

Author, WooCommerce expert and WordCamp speaker, Rodolfo has worked as a WooCommerce freelancer since 2011. His goal is to help entrepreneurs and developers overcome their WooCommerce nightmares. Rodolfo loves travelling, chasing tennis & soccer balls and, of course, wood fired oven pizza.

6 thoughts on “WooCommerce: How to Set Different Prices Based on User Role?

  1. Hello,

    I want to offer members discounted prices. Is it possible to display two prices for each item for users not logged in?
    Ex:
    Non-Member Price: $20
    Member Price: $18

    Specific roles will only see the member price when logged in and will see that price for the product when added to the cart. All other users will see both prices and charged the non-member price for the product when added to the cart unless they join while or before completing their purchase.

    1. Hello Rodney, thanks so much for your comment! Yes, this is definitely possible, but I’m afraid it’s custom work. If you’d like to get a quote, feel free to contact me here. Thanks a lot for your understanding!

  2. Hello, do you know if there is a way to show a different pricing based on a page? For example if page x shows 10 dollars I want page y to show 14 dollars.

    1. Hello Nick, thanks so much for your comment! Yes, this is definitely possible, but I’m afraid it’s custom work. If you’d like to get a quote, feel free to contact me here. Thanks a lot for your understanding!

  3. these solutions work well indeed.
    I use also in one of my project where i need prices based on users roles
    – WooCommerce Role Based Pricing Pro (https://codecanyon.net/item/woocommerce-role-based-pricing-pro/14120734)
    it integrate very well with wp all import

    – Product Visibility by User Role for WooCommerce Pro (https://wpfactory.com/item/product-visibility-by-user-role-for-woocommerce/)
    Need to hide some products or some categories based on the role

    1. Thanks for your feedback Mike!

Questions? Feedback? Support? Leave your Comment Now!
_____

If you are writing code, please wrap it between: [php]code_here[/php]. Failure to complying with this (as well as going off topic) will result in comment deletion. You should expect a reply in about a week - this is a popular blog but I need to get paid work done first. Please consider joining #BloomerArmada to ask me 1-to-1 WooCommerce questions. Thank you :)

Your email address will not be published. Required fields are marked *

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