WooCommerce Price by User Role

WooCommerce Price based on User Role

Display WooCommerce products prices by user roles


With WooCommerce Price based on User Role module you can set different product prices for different user groups (roles). There is also a tool to create custom user roles in Booster’s General module.

If you want to set global price multiplier for each user role, you need:

  • Enable the module in WooCommerce > Settings > Booster > Prices & Currencies > Price based on User Role.
  • Set multiplier per role.

WooCommerce Price by User Role - Admin Settings

If you want to set price per user role for each product separately, you need:

  • Enable the module in WooCommerce > Settings > Booster > Prices & Currencies > Price based on User Role.
  • Check “Enable per Product Settings”.
  • Go to product’s edit page and find “Booster: Price based on User Role” meta box.
  • Set regular and sale prices for each role. This will override global multiplier for current product and selected role.

WooCommerce Price by User Role - Admin Settings (per product)

Accessible through:
  • WooCommerce > Settings > Booster > Prices & Currencies > Price by User Role
Tested on WooCommerce 3.5.4 and WordPress 5.0.3
Plugin can be downloaded here. If there are any locked fields in the module, you will need to get Booster Plus to unlock them.

Leave a Reply



  1. Kartik November 10, 2016 at 10:55 am #

    HI, I have purchased the pro plugin. I have the price per user enabled and the price and currency per country enabled. The price per user does not work.

    Reply to thread

  2. Rune Kristoffersen November 17, 2016 at 6:21 pm #

    Hello folks!

    I just want to say that i am really impressed

    I have used Booster plugin for a while, mainly because of the great PDF document system which is the best around..

    I have now looked around and tested a lots of plugins for dynamic pricing and role based pricing to use in combination with WooCommerce Product bundles, but even woocommerce own dynamic pricing which says to work great with product bundles did not do what i was expecting. All these plugins had no option to totally disable “items on sale” products from the pricing rules.

    I was narly to give up when i got to think about all the options included in Booster plugin, i took a look and enabled the role based pricing option, i found that all items even variable could be given a permanent price, which means i could set items on sale price permanent, and these was then excluded from any pricing rule. And the best part was that all these new prices was not serialized in DB, they used its own postmeta so i could easily add the postmeta into my product bulk editor so i do not need to open/edit each product just to change any pricing settings.

    After a short hour i had my store ready with pricing rules for 3 different roles and all items on sale excluded, VOILA the dream come true, it works perfect

    Thank you guys for the perfect solution…

    PS… Do never serialize the pricing values

    Kind Regards

    Rune Kristoffersen

    Reply to thread

    • Ahmed December 3, 2016 at 3:21 am #

      I bought Booster Pro, and am very happy with it. I am also using prices per user role, and have enabled it per product (bypassing the general multipliers). However, I’d like to do all the prices in a bulk editor. How are you doing that? What tool are you using to export and import the data into Woocommerce? I’m worried that Booster’s extra fields will ruin imports and exports…?

  3. Nic May 22, 2017 at 6:05 am #

    So with the regular Booster plugin, am I correct to have found that for Price by User Role, I can only utilize that option on one product, and to use it on multiple products, I need to purchase the Booster Plus?

    Reply to thread

  4. FCO R GARCIA CAMPOS June 20, 2017 at 9:13 am #

    That module allow us to set an easy list of discounts by category and user role.
    It works fine for front end orders.
    But there is a problem: For admin made orders, even selected customer with his role, only standar prices are applied when adda a product, even after push “recalculate” button.
    Who make backend order dont need to know its role, nother its exact discount prices, but cannot place order by that reason.
    ¿How can we fix that, and makes this module works for admin made orders too?

    Reply to thread

  5. jimmy November 23, 2017 at 5:34 pm #

    I have problem using this features…. I want to use the “per product” setting. So i change the meta box from NO to YES, then i update the page, but it always remains at NO. Cannot use it….

    Reply to thread

    • Wabi December 15, 2017 at 6:51 pm #

      I have the same problem. Dear support can you help us?


    • Booster Support Team December 16, 2017 at 5:38 pm #


      Could you please recheck that you don’t have “Booster: Free plugin’s version is limited to only one price by user role per products settings product enabled at a time…” message at the top of the page, after you set it to “Yes”. If that’s not the case – please contact me on tom@booster.io for further support.

      Best regards,

      Booster Support Team
  6. Tobias April 8, 2018 at 6:46 pm #

    Hi. Is there any way that the consumer kan see the ordinarie pris and there User role price? Like the global discart show the prices.

    Reply to thread

    • danielc April 18, 2018 at 11:01 pm #

      Hello Tobias,

      sorry for a late response, can you explain in more details what is your problem? because right now its hard to understand what exactly you want.

      Best regards,
      Support Team

  7. Guillaume April 28, 2018 at 6:41 pm #


    Very important question here!
    Am using price per role on product basis and that works perfectly. I find a limitation though.

    Let’s say I have 5 roles and 100 products.
    But then I negotiate a special deal on 1 product with a customer. Then I need to create a new role just for that customer, which will be the copy of a role with 99 products with the same discount. And only 1 product with a different discount. Then can you imagine the pain in maintaining these new roles while I agree on special terms with other customers too…

    To prevent ending up with 100s of roles I think the best way is to allow in the product page to setup discounts per customer too. Which should be applied instead of the user role discount in this case

    Do you think this could be implemented?
    I think that would be a huge improvement in the price per role module


    Reply to thread

    • Guillaume April 28, 2018 at 6:44 pm #

      “Which should be applied instead of the user role discount in this case” I mean when there is data for a customer then this discount rule should be applied instead of the client’s role discount rule

  8. deb May 21, 2018 at 10:54 pm #

    I have the full paid version but I cannot find a way to disable discount/coupon codes per user role.

    In order to prevent maintaining hundreds of products by wholesale price, I want to use a custom user role to reduce the price by percentage for a wholesale user role and that seems to be working great as I can include or exclude specific categories as appropriate without having to go in and set the rate individually for each product or apply a global rate for all products since I need them applied only to specific categories.

    The problem is that when adding products to the cart, a wholesale user can till enter coupon codes that are readily available on the site for regular customers and get an additional discount on top of their half price rate and that reduces their price below my own cost of goods. So adding a discount to a wholesale rate is not an option. I can’t find a way to disable the coupon code or remove the coupon box for a wholesale user role.

    How do I do that?

    Reply to thread

    • Booster Support Team May 22, 2018 at 12:08 am #


      Thanks for the idea. Unfortunately not possible with Booster at the moment, but seems quite easy to implement. One question though – do you want to disable *all coupons* for some user role? Or you want to enable/disable *each coupon* for some user role (i.e. on per coupon basis)?

      Best regards,

      Booster Support Team
    • deb May 22, 2018 at 12:16 am #

      Hi, Tom.
      Thanks for the speedy reply. I would like to disable all coupons for a specific user role since the price set per role is the lowest reduced price I can go in those cases.

      thanks, deb

    • Booster Support Team May 22, 2018 at 12:26 am #

      Ok, I’ve made some tests already – disabling all coupons will be easy. One note – it disables coupons for some user role completely – this means that even coupon field on cart disappears for that user role. I will get back to you as soon as it’s done – shouldn’t take long. I will also check if this can be done on per coupon basis (maybe this will be useful for other Booster users).

      While testing I’ve discovered one workaround that already can be done now in Booster – not sure if this will be good enough to you though – when you create a coupon in WooCommerce, you can select “Exclude sale items” checkbox there. Now if you go to “WooCommerce > Settings > Booster > Prices & Currencies > Price by User Role” and enable “Disable Price by User Role for Regular Price” checkbox there, price by user prices will be counted as sale price, so coupon is not applied. Hope you get the idea.

      P.S. If you like Booster, please leave us a rating.

      Best regards,

      Booster Support Team
    • deb May 22, 2018 at 12:50 am #


      That sounds like a great workaround. I tried a number of different things that removed things I didn’t want removed or required setting price individually by product (too many products to do that) but I had not tried that control – Didn’t fully understand that one and then got tired of going in circles!

      But I’ll check it out. Since I’m still in the “preparing for wholesale” stages at this point, that will be a good start. I’m personally happy with removing coupons for a specific user role, but it’s true that other users may want it on a per coupon basis.

      Thanks again for the speedy response and feedback. I”m happy that’s something you can do. And yes, I’m very impressed with Booster and like it very much so far.

      thx, deb

    • Booster Support Team May 22, 2018 at 5:38 pm #

      Hi Deb,

      I’ve just sent you new dev version. You will need to uninstall the old plugin version first (don’t worry your saved settings won’t disappear). There I’ve added new “Coupon by User Role” module in “WooCommerce > Settings > Booster > Cart & Checkout > Coupon by User Role”. Could you please check it out? Any feedback is highly appreciated.

      Best regards,

      Booster Support Team
    • deb May 22, 2018 at 7:20 pm #

      gosh, Tom! Thanks for doing that and so quickly. It works like a charm 🙂

      Thanks so much. I’ve submitted rave reviews for you 🙂


    • deb May 26, 2018 at 6:52 pm #

      Hi, Tom.

      Thanks again for your brilliant work on this. However, I’ve found an issue. I get this error at the top of the page when I check my site with Edge and IE. It’s fine with Chrome and Firefox. I checked all the file paths and code lines on the server and it’s all there and is correct so I can’t figure out why I can’t eliminate the error on those 2 browsers or their cache. Right after I installed the new plugin you sent, I started getting warnings from my security app about malware and missing includes which I could never pin down so when I finally saw these on IE and Edge, I’m guessing it’s these errors it’s seeing.

      Here is the error I’m getting at the top of the site on those 2 browsers:

      Warning: include_once(/home1/mysite/public_html/wp-content/plugins/booster-plus-for-woocommerce/includes/class-wcj-coupon-by-user-role.php): failed to open stream: No such file or directory in /home1/debschlier/public_html/wp-content/plugins/booster-plus-for-woocommerce/includes/core/wcj-modules.php on line 137

      Warning: include_once(): Failed opening ‘/home1/mysite/public_html/wp-content/plugins/booster-plus-for-woocommerce/includes/class-wcj-coupon-by-user-role.php’ for inclusion (include_path=’.:/opt/php70/lib/php’) in /home1/debschlier/public_html/wp-content/plugins/booster-plus-for-woocommerce/includes/core/wcj-modules.php on line 137

      I tried disabling that setting, as well as disabling booster to see if the error went away but it didn’t seem to make any difference at all. The only thing I haven’t tried is deleting the plugin altogether and starting over to see if it went away because I didn’t want to lose so many settings and all the work I’ve already done individually on products.

      Do you have any ideas?

      Thanks, deb

    • deb May 27, 2018 at 8:13 pm #

      Since I entered my last note, I’ve discovered that it does show up in Firefox also when I’m NOT logged in.

      I’ve also discovered that when logged in on the other browsers, the error does not show up.

      It seems the error only shows up when you’re NOT logged into an account.

      Hope that helps,

    • Booster Support Team May 31, 2018 at 12:10 am #

      Hi Deb,

      Sorry for not replying earlier. This is really weird. Looks like when you are not logged, some of the plugin files are missing. You can try deleting the plugin and re-installing it again. You settings will remain unchanged (if you’d need to really delete Booster settings, this can be done though “WooCommerce > Settings > Booster > Dashboard > Manage Settings > Reset”). Alternatively you can wait till this Sunday (June 3rd), when we are going to release stable version, so you could update normally (not sure it will help though).

      P.S. By the way – as mentioned, today we’ve included “Per Coupon” options, so coupons can now be invalidated for some user roles on per coupon basis (i.e. not all coupons at once).

      Hope that helps.

      Best regards,

      Booster Support Team
    • deb June 3, 2018 at 9:05 pm #

      Thanks so much! I didn’t have time to work on this until today so I installed the Booster update before trying anything else and that does seem to have corrected the problem. I have no idea what went wrong but it seems the new version fixed everything 🙂

      Super nice plug-in. I really like it. If you don’t mind me saying so, the only thing that could make it even better is a “bulk edit” on things like wholesale entries and other things like that have individual product entries, although I can see how it may not be possible but a gal can dream 🙂

      thanks again for all your help and special attention,

  9. Zomba August 31, 2018 at 9:37 pm #

    I am using this to give certain members special pricing (based on their roles I have assigned). Everything works fine BUT it does not show the original price, so the member likely does not have a clue that I am giving them a special discounted price. Is there any way to do this, i.e. to show the original price with a strikethrough and then the special price next to it?

    Reply to thread

    • RokasJ September 2, 2018 at 9:02 am #

      Hi Zomba,

      Unfortunately that’s not possible yet but we have added it to our todo list.

      Best regards,
      Rokas – Support Team

  10. Gecentas September 3, 2018 at 5:47 pm #


    is it possible to display all products with SALE price set by this module? kinda woocommerce [sale_products] shortcode?

    Reply to thread

    • RokasJ September 3, 2018 at 6:05 pm #

      Hi Gecentas,

      I’m afraid that’s not possible at the moment but we have added this to our todo list.

      Best regards,
      Rokas – Support Team

    • Gecentas September 3, 2018 at 6:10 pm #

      ok, thanks / ačiū

  11. vanderlugt September 14, 2018 at 9:20 pm #

    I am really happy with your PRO plugin and I use a lot of the options.

    I would like to apply discounts not on user roles but on groups (used with Woocommerce Groups plugin). For me this makes much more sense, because my subscribers (user role) can be a member of different groups for which diiferent discount rates can be used..
    Might this be feasible too?

    Thanks! JP

    Reply to thread

    • RokasJ September 15, 2018 at 11:31 am #


      Unfortunately that’s not possible at the moment but we have added it to our todo list.

      Best regards,
      Rokas – Support Team

  12. Roberto September 18, 2018 at 8:45 pm #

    Hi Team. I’m trying to configure The feature: Price based on User Role.
    When I try to configure the prices in the products it isn’t working. I can apply one price only.
    How can I solve this issue?

    Reply to thread

    • roberto September 19, 2018 at 12:32 pm #

      Hi team. I tried to see the solution that recommended me by email but it is not working.
      I’m seeing that the function Price based on user role for each product only work in a product.
      Thanks you for your help but other plugin resolve my problem.

  13. Patrick September 18, 2018 at 9:28 pm #

    Is there a way (either in the free or plus version) to simply exclude certain products from the price per role adjustment without using the per product feature?

    Reply to thread

    • RokasJ September 19, 2018 at 12:49 pm #

      Hi Patrick,

      Unfortunately that’s not possible yet but we have added it to our todo list.

      Best regards,
      Rokas – Support Team

  14. winzki September 21, 2018 at 1:19 pm #

    Again about the backend… one question from June 20,2017 is still open:
    How can we make the role based price work with the admin backend?
    The use case is: Our shop managers create orders for customers, and the customers have different roles. Still, the price of the items that are added to the order by our admins does not follow the prices set for the customer’s role.

    As it seems, the admin backend uses AJAX to fetch products to add to an order.
    That Ajax call does not fetch the correct price per role of the customer that has been set for the order.
    I guess that the Ajax call will return the price for the shop manager’s role of the shop manager that is currently logged in.
    Also refreshing the order (“Recalculate button”) does not fetch the right prices for the role of the customer.

    Is there a way to hook into the Ajax Call of the Admin backend and inject the customer object of the new order,
    so that when afterwards the price per role gets calculated, it will be calculated for the right role?

    Reply to thread

  15. achatcloud October 8, 2018 at 11:52 am #

    Hi, on the ‘Price based on User Role by Products Tags’ section, could we also have only some roles that display? Because at the moment there are 2 issues that makes the solution very difficult to use for me:
    – showing all roles for each product tags makes the list super long and very difficult to work with
    – also I’m using Polylang and have 2 languages at the moment and so for each product tags I’m getting 2 fields for each role. Can we have only 1 field for both though?

    So right now I have 20 roles (only 5 to be used) and 5 product tags, which gives me 200 fields (100 for each language). While I need only 5 roles for 5 categories which would be only 25 fields to fill in and that would be so much easier to manage this feature.

    Reply to thread

    • RokasJ October 8, 2018 at 8:00 pm #

      Hi Achatcloud,

      Unfortunately that’s not possible yet but we have added it to our todo list.

      Best regards,
      Rokas – Support Team

    • RockPeach October 8, 2018 at 8:08 pm #

      Hi do you mean you will do it then? And at what timeframe?

  16. timothy hopper November 13, 2018 at 4:49 pm #

    help please…when activated and set to hide prices the prices ARE removed however it then shows an OUT OF STOCK description. We are using this for a Wholesale site where the user must register to see prices. However a concern is that instead of someone registering they will think everything is out of stock and leave. We would like to instead have a button which states…PLEASE REGISTER TO SEE PRICING

    Reply to thread