User and Role Based Pricing for WooCommerce
Requires WooCommerce version 3.0 or higher!
Integration with Woocommerce Wholesale Ordering requires Woocommerce Wholesale Ordering version 3.0 or higher.
Save even more with the Wholesale Ordering and User Role extensions bundle (includes User Role Pricing and User Role Minimums)!
Check the bundle page for special bundle upgrade pricing information if you already own the Wholesale Pricing plugin.
This WooCommerce extension allows you to create any number of custom price fields for WooCommerce products, and then select which price to use as a base price, along with a price multiplier, for each role or individual user. Individual user settings take priority over user role settings. If there are no settings for a specific user, that user gets the settings for their role. The plugin also allows you to create as many custom roles as you need.
In addition to custom prices and price multipliers, you can also specify if the role/user is tax exempt, if shipping is disabled, if they should have a billing account, and if they should be treated as a wholesale customer (when used along with Woocommerce Wholesale Ordering).
For each custom price that you create, you can specify if the prices entered are entered including or excluding taxes.
NEW in Version 2.0
- Compatibility with WooCommerce 3, as well as compatibility updates for WPML/WCML and Aelia Currency Switcher when used with WooCommerce 3+
NEW in Version 1.4
- “Member Sales” feature introduced. When this option is enabled, if a sale price is less than the calculated member price (calculated from their base price and multiplier), the sale price will be used instead of the member price.
- New option to determine if a user/role price multiplier should be applied to sale prices. This setting will work with either the new “Member Sales” option, or if you have the “Use Sale Prices” option enabled (for users with default or regular price as their base price)
- New option to determine if a user/role price multiplier should be applied to wholesale prices when using the “revert” option. This will only apply when used in conjunction with the Wholesale Ordering plugin, and when a user/role is treated as wholesale, but using a price other than the wholesale price as their base price, and there is no base price entered for a product (thus reverting to the wholesale price).
- New “Display Settings” page in the User Role Pricing admin settings. This gives you a very powerful set of options for custom price displays for “members”, “non-members”, and guests. Please see the documentation for a detailed description of how that system works.
NEW in Version 1.3
- Full compatibility with WPML/WCML, including multi-currency support
- Full compatibility with Aelia Currency Switcher
- Full compatibility using the combination of WPML for multilingual and Aelia Currency Switcher to handle multi-currency functions
- Manually sync variable products at any time, via Ajax loop to prevent timeouts
- Lots of behind the scenes code optimizations and improvements that will help speed up page load times, especially when used in conjunction with Wholesale Ordering
- See the newly updated docs pages, including new pages for WPML/WCML integration, Aelia Integrations, and User Role Pricing integration.
NEW in Version 1.1.0
- Changed the way Tax Exempt and Disable Shipping are specified for Roles. Now you can explicitly set them to “Yes” or “No” or “Default”. Default will use the regular WooCommerce settings, unless you are also using the Wholesale Ordering plugin and have the role set to be treated as admin, in which case “Default” will use the Wholesale Ordering settings.
- Added an option on the General Settings page “Use Sale Prices”. If you check this box, any users or roles that have the base price set to “Default” or “Regular Price” will use the regular WooCommerce sale price logic, which uses the sale price instead of regular price is it is present and less than the regular price. Note that if your user or role has a price multiplier set other than 1, that multiplier will get applied to the sale price as well! The only time the Sale Price is NOT used is if the user or role has a different base price, but you have the “Revert” option selected for when there is no base price for a product — in that case it ONLY uses the Regular Price even when a Sale Price exists. Note also that Sale Prices do not apply to users or roles treated as wholesale customers (when used with Wholesale Ordering), since there is no Wholesale Sale Price field.
- Create custom prices and specify if those prices include or exclude tax
- Custom prices can be entered/edited via regular product edit, quick edit, or bulk edit (including variation bulk editor actions for each custom price)
- Custom prices are saved as post meta values for each product, and meta keys are shown for each, making it easy to map prices when using CSV importers or exporters
- Create custom user roles
- Specify which price to use as a base price for each role or individual user
- Specify a price multiplier to use to adjust prices for each role or individual user
- Sale prices can override custom prices when they are less than the calculated user/role price with the Member Sales option introduced in version 1.4
- Can specify if multipliers should be applied to sale prices (introduced in version 1.4)
- Create custom html price displays by user type (member, non-member, and guest) – introduced in version 1.4
- Specify if roles, or individual users, are tax exempt
- Disable shipping for roles or individual users
- Add a custom billing account field that will be saved with the user’s billing address, and specify a custom label for this field (Account #, VAT Account, etc.)
- Enable the custom billing account field on a role or individual user basis
- Specify (globally) what to do if a particular custom price doesn’t exist for a product. Options are:
- Revert (reverts to the WooCommerce Regular Price)
- Hide (hides the products from the shop, and makes them non-purchasable)
- Message (specify a custom message to show in place of the price, and makes the product non-purchasable)
Integration with Woocommerce Wholesale Ordering:
For each role or individual user, you can specify if they are treated as a wholesale customer. If so, then all the features of the Wholesale Ordering plugin will apply to them. Allows you to split up your roles, or individual users, into “retail” or “wholesale” customers. Using the Wholesale Ordering plugin, you can specify separate tax classes, custom messages, custom price prefixes and suffixes, minimum order amount, separate wholesale order terms page, purchase order field, and more! Check the Woocommerce Wholesale Ordering page for more info on that plugin.
In addition to being able to use all the independent settings of WooCommerce Wholesale Ordering, you can still define different base prices and price multipliers for roles or individual users who are treated as wholesale customers. When WooCommerce Wholesale Ordering is active, the Wholesale Price field will also appear as a price that you can specify as the base price for ANY role or individual user (regardless of whether or not you have them set to be treated as wholesale).
Also, when you set a role or user to be treated as wholesale, but they are using a custom base price, if the base price does not exist for a product, and you have the User Role Pricing option set to “Revert”, then that price will revert to the Wholesale Price instead of the WooCommerce Regular Price. Thus, you could have a special role set up for special Wholesale Customers who get a discount wholesale price (that you set up) for some products. Then, for any products where you don’t enter the discount wholesale price, the price would revert back to the regular Wholesale Price. In version 1.4 you can also specify if the multiplier should be applied to the Wholesale Price when a custom price doesn’t exist and using the revert option to revert to the Wholesale Price for customers treated as wholesale.
Role/User settings such as Tax Exempt and Disable Shipping can also be used to override the Wholesale Ordering settings for roles/users you set to be treated as wholesale.
The combination of the two plugins is quite powerful and flexible! Lots of potential settings combinations!
For a simple example, suppose you use the WooCommerce “Regular Price” as your retail price for regular customers and guests. But, you also have one type of customer that you want to sell to at a discounted price. You could create a role (using this plugin) for that type of customer, that we will call Discount Customer for this example. If that customer gets a fixed percentage discount off of the Regular Price for each product, then you don’t need to create a new price field. Instead, you just set the Base Price for that role to “Regular Price” and then set the Price Multiplier for that role to adjust the price for the amount you want to discount. So, if they would get 20% off the Regular Price, you simply set their price multiplier to 0.8. However, if the discounted price is not a fixed percentage, and needs to be specified for each product, then you could create a new price, and call it something like “Discount Price”. Once you create that custom price, you will see that as a new price input field for each product or product variation. Then, you could set the Base Price for our Discount Customer role to the new Discount Price, and leave the multiplier set at 1.
Continuing on with our example, let’s say you have one Discount Customer who buys much more than your other discount buyers, and you want to give them a slightly bigger discount. To do that, you simply go into the WordPress User editor, and change the Price Multiplier for that specific user, which will then override the role settings just for that user. If you were using Regular Price as the base price for that role, and the 0.8 multiplier, but you want this user to get a 25% discount, you just set their Price Multiplier on their Edit User page to 0.75. Or, if you are using a custom Discount Price field for each product, and the Discount Customer role is set with a default 1 Price Multiplier, but you want this user to get an extra 5% off that price, just set their individual User Price Multiplier to 0.95.
Similarly, you could also create a “Cost” price field, and then set certain roles or users to get a fixed percentage above your Cost by setting their Price Multiplier to some value greater than 1. For example 1.2 would give a price 20% above Cost.
Great plugin, does everything I need and works flawlessly. Highly recommended. Very fast and attentive support from Stephen too.
This is the only role based pricing plugin that works with the order admin page in woocommerce – I’ve tried many different ones. Stephen responded immediately to my queries and came up with changes resulting in version 1.3.4. This plugin essentially allows me to manage b2b and b2c pricing all in one place. Fab.
You must log in and be a buyer of this download to submit a review.