{"id":368546,"date":"2026-09-15T17:09:18","date_gmt":"2026-09-15T17:09:18","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/wmgrs-role-based-pricing-for-woocommerce\/"},"modified":"2026-09-15T17:16:04","modified_gmt":"2026-09-15T17:16:04","slug":"wmgrs-role-based-pricing-for-woocommerce","status":"publish","type":"plugin","link":"https:\/\/wordpress.org\/plugins\/wmgrs-role-based-pricing-for-woocommerce\/","author":21100200,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.1.1","stable_tag":"1.1.1","tested":"7.1","requires":"5.6","requires_php":"7.4","requires_plugins":null,"header_name":"WMGRs Role Based Pricing for WooCommerce","header_author":"WMGRs","header_description":"Set different prices per user role \u2014 percentage discounts, fixed discounts, or fixed prices \u2014 storewide or for specific products. Hide prices from guests.","assets_banners_color":"474059","last_updated":"2026-09-15 17:16:04","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/woomanagers.com\/extensions\/role-based-pricing-for-woocommerce\/","header_author_uri":"https:\/\/woomanagers.com\/","rating":0,"author_block_rating":0,"active_installs":0,"downloads":49,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.1.1":{"tag":"1.1.1","author":"woomanagers","date":"2026-09-15 17:16:04","revision":3697443}},"upgrade_notice":{"1.1.1":"<p>Fixes the variation price not displaying on variable products when a pricing rule applies. Recommended for all users.<\/p>"},"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3697431,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3697431,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3697431,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3697431,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.1.1"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3697431,"resolution":"1","location":"assets","locale":"","width":1456,"height":470},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3697431,"resolution":"2","location":"assets","locale":"","width":1456,"height":523},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3697431,"resolution":"3","location":"assets","locale":"","width":1456,"height":676},"screenshot-4.png":{"filename":"screenshot-4.png","revision":3697431,"resolution":"4","location":"assets","locale":"","width":1456,"height":523}},"screenshots":{"1":"A wholesale customer sees their role price on the product page, with the original price struck through.","2":"The pricing rules screen: role, adjustment type, targeting and priority.","3":"Configuring a rule: role, adjustment type, amount, and product targeting.","4":"Display &amp; Guest Prices: sale-style display and hiding prices from logged-out visitors."}},"plugin_section":[],"plugin_tags":[10553,13760,139401,280924,51032],"plugin_category":[45],"plugin_contributors":[230126],"plugin_business_model":[],"class_list":["post-368546","plugin","type-plugin","status-publish","hentry","plugin_tags-b2b","plugin_tags-hide-price","plugin_tags-role-based-pricing","plugin_tags-user-role-pricing","plugin_tags-wholesale","plugin_category-ecommerce","plugin_contributors-woomanagers","plugin_committers-woomanagers"],"banners":{"banner":"https:\/\/ps.w.org\/wmgrs-role-based-pricing-for-woocommerce\/assets\/banner-772x250.png?rev=3697431","banner_2x":"https:\/\/ps.w.org\/wmgrs-role-based-pricing-for-woocommerce\/assets\/banner-1544x500.png?rev=3697431","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/wmgrs-role-based-pricing-for-woocommerce\/assets\/icon-128x128.png?rev=3697431","icon_2x":"https:\/\/ps.w.org\/wmgrs-role-based-pricing-for-woocommerce\/assets\/icon-256x256.png?rev=3697431","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/wmgrs-role-based-pricing-for-woocommerce\/assets\/screenshot-1.png?rev=3697431","caption":"A wholesale customer sees their role price on the product page, with the original price struck through."},{"src":"https:\/\/ps.w.org\/wmgrs-role-based-pricing-for-woocommerce\/assets\/screenshot-2.png?rev=3697431","caption":"The pricing rules screen: role, adjustment type, targeting and priority."},{"src":"https:\/\/ps.w.org\/wmgrs-role-based-pricing-for-woocommerce\/assets\/screenshot-3.png?rev=3697431","caption":"Configuring a rule: role, adjustment type, amount, and product targeting."},{"src":"https:\/\/ps.w.org\/wmgrs-role-based-pricing-for-woocommerce\/assets\/screenshot-4.png?rev=3697431","caption":"Display &amp; Guest Prices: sale-style display and hiding prices from logged-out visitors."}],"raw_content":"<!--section=description-->\n<p>Role Based Pricing for WooCommerce lets you charge different prices to different types of customers. Wholesale buyers, trade accounts, VIP members and staff can each see their own price, while everyone else sees your normal retail price.<\/p>\n\n<p>A standard WooCommerce store has one price per product, so every visitor sees the same number. That works for retail and breaks the moment you sell to businesses. Wholesale buyers expect trade prices, distributors negotiate their own rates, and members expect the discount they pay a subscription for. Without role based pricing you end up running a second store, maintaining duplicate products, or emailing a price list and taking orders by hand.<\/p>\n\n<p>This plugin removes all of that. You create pricing rules that map a <strong>WordPress user role<\/strong> to a price adjustment, and WooCommerce does the rest. A customer in the Wholesale role logs in and every price across the store \u2014 shop listings, product pages, the cart, the mini-cart and checkout \u2014 is already their price. Nothing is recalculated at checkout and nothing surprises them at the last step, because the rule is applied to the product price itself rather than bolted on as a discount.<\/p>\n\n<p>Rules can be broad or precise. Give an entire role 20% off everything, set a fixed price on one product for one role, or add a markup for a role you want to charge above list. Rules are checked from the top down and the first match wins, so a specific product rule can sit above a storewide one and take precedence.<\/p>\n\n<p>You can also control who sees prices at all. Hide prices from logged-out visitors and replace them with a message such as \"Login to see prices\", and optionally remove the add-to-cart button while they are hidden \u2014 which turns the storefront into a catalogue for the public and a working shop for approved accounts. That is the usual setup for trade suppliers who do not want retail customers, or competitors, reading their pricing.<\/p>\n\n<h4>Pricing rules you can create<\/h4>\n\n<ul>\n<li><strong>Percentage discount<\/strong> \u2014 20% off list price for a role<\/li>\n<li><strong>Fixed discount<\/strong> \u2014 a set amount off, in your store currency<\/li>\n<li><strong>Fixed price<\/strong> \u2014 ignore the product price and charge an exact figure<\/li>\n<li><strong>Percentage markup<\/strong> \u2014 charge a role above list price<\/li>\n<\/ul>\n\n<p>Each rule targets one user role and applies either storewide or to specific products and variations, chosen with a product search. Rules can be enabled and disabled without deleting them, and reordered to control which one wins.<\/p>\n\n<h4>Where the prices apply<\/h4>\n\n<p>Prices are changed at the product level, so they are correct everywhere WooCommerce shows a price:<\/p>\n\n<ul>\n<li>Shop, category and search listings<\/li>\n<li>Single product pages, including the price range on variable products<\/li>\n<li>Cart, mini-cart and checkout<\/li>\n<li>Order totals and the emails generated from them<\/li>\n<\/ul>\n\n<p>Variable products are handled properly. Each role gets its own cached variation price range rather than the shared one WooCommerce caches by default, so a wholesale customer does not see retail prices in the variation dropdown.<\/p>\n\n<h4>Who it is for<\/h4>\n\n<p>Wholesale and trade suppliers, B2B stores selling to businesses as well as consumers, membership sites with a members' price, distributors and resellers on agreed rates, and any store that has ever kept a separate price list in a spreadsheet. It works just as well for a single \"Staff discount\" role on an otherwise ordinary retail shop.<\/p>\n\n<h4>How it works<\/h4>\n\n<ol>\n<li>Go to WooCommerce \u2192 Role Based Pricing \u2192 Add Rule.<\/li>\n<li>Pick a role (e.g. Wholesale Customer), an adjustment (e.g. 20% discount), and whether it applies to all products or specific ones.<\/li>\n<li>Save \u2014 customers with that role immediately see their price everywhere.<\/li>\n<\/ol>\n\n<h4>Built to stay fast<\/h4>\n\n<p>The plugin adds no database tables and loads no front-end JavaScript or CSS. Pricing is applied through WooCommerce's own price filters, and variation price caches are keyed per role so the cache keeps working instead of being bypassed. Uninstalling removes its own two options and leaves nothing behind.<\/p>\n\n<p>It is compatible with WooCommerce High-Performance Order Storage (HPOS).<\/p>\n\n<h4>Free and premium<\/h4>\n\n<p>Everything described above is free and unlimited \u2014 there is no cap on rules, roles or products.<\/p>\n\n<p>A premium version is available at <a href=\"https:\/\/woomanagers.com\/\">woomanagers.com<\/a> for stores that need customer-specific pricing (a rate for one named buyer), category-level rules, tiered quantity pricing, price display customisation such as \"You save 20%\", CSV import and export of rules, and scheduled pricing with start and end dates.<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Upload the plugin and activate it.<\/li>\n<li>Go to WooCommerce \u2192 Role Based Pricing \u2192 Add Rule.<\/li>\n<li>Pick the user role, the adjustment type and amount, and whether the rule applies storewide or to selected products.<\/li>\n<li>Drag rules to set priority \u2014 the first matching rule wins.<\/li>\n<li>Guest price hiding and the struck-through original price are under the Display &amp; Guest Prices tab.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"how%20do%20i%20set%20wholesale%20prices%20in%20woocommerce%3F\"><h3>How do I set wholesale prices in WooCommerce?<\/h3><\/dt>\n<dd><p>Create a user role for your wholesale customers (most B2B registration plugins add one, or you can use an existing role), then add a rule in this plugin targeting that role \u2014 for example a 20% percentage discount on all products. Assign the role to a customer and they see wholesale prices the moment they log in.<\/p><\/dd>\n<dt id=\"can%20i%20show%20different%20prices%20to%20different%20user%20roles%3F\"><h3>Can I show different prices to different user roles?<\/h3><\/dt>\n<dd><p>Yes, that is the core of the plugin. Each rule targets one role, and you can have as many rules as you have roles. A customer sees the price from the first enabled rule that matches their role and the product they are looking at.<\/p><\/dd>\n<dt id=\"does%20it%20change%20prices%20in%20the%20cart%20and%20checkout%20too%3F\"><h3>Does it change prices in the cart and checkout too?<\/h3><\/dt>\n<dd><p>Yes. Rules apply consistently on product pages, shop listings, the cart, the mini-cart and checkout. Because the product price itself is adjusted, totals and order emails are correct too \u2014 the customer never sees one price in the shop and another at checkout.<\/p><\/dd>\n<dt id=\"can%20i%20hide%20prices%20until%20a%20customer%20logs%20in%3F\"><h3>Can I hide prices until a customer logs in?<\/h3><\/dt>\n<dd><p>Yes. Under Display &amp; Guest Prices you can replace prices with a message for logged-out visitors, and set that message to anything you like \u2014 \"Login to see prices\", \"Trade customers only\", \"Contact us for pricing\".<\/p><\/dd>\n<dt id=\"can%20i%20turn%20my%20shop%20into%20a%20catalogue%20with%20no%20prices%20and%20no%20add-to-cart%3F\"><h3>Can I turn my shop into a catalogue with no prices and no add-to-cart?<\/h3><\/dt>\n<dd><p>Yes, for logged-out visitors. Enable price hiding and also tick the option to remove the add-to-cart button while prices are hidden. Approved customers who log in get a fully working shop at their own prices.<\/p><\/dd>\n<dt id=\"does%20it%20work%20with%20variable%20products%3F\"><h3>Does it work with variable products?<\/h3><\/dt>\n<dd><p>Yes, including the price range shown on variable product pages and in the variation dropdown. Each role gets its own correctly cached price range, so roles never see each other's prices.<\/p><\/dd>\n<dt id=\"which%20rule%20applies%20when%20several%20match%3F\"><h3>Which rule applies when several match?<\/h3><\/dt>\n<dd><p>The first enabled matching rule, counting from the top of the list. Reorder rules with the up and down arrows to control priority \u2014 put narrow rules above broad ones so a specific product rule beats a storewide one.<\/p><\/dd>\n<dt id=\"can%20i%20apply%20a%20rule%20to%20only%20some%20products%3F\"><h3>Can I apply a rule to only some products?<\/h3><\/dt>\n<dd><p>Yes. Choose \"Specific products\" on the rule and search for the products or variations it should cover. Everything else keeps its normal price, or falls through to a lower storewide rule if you have one.<\/p><\/dd>\n<dt id=\"can%20i%20set%20an%20exact%20price%20instead%20of%20a%20discount%3F\"><h3>Can I set an exact price instead of a discount?<\/h3><\/dt>\n<dd><p>Yes \u2014 use the Fixed price adjustment type and enter the figure you want that role to pay. The product's own price is ignored for that role.<\/p><\/dd>\n<dt id=\"can%20i%20charge%20a%20role%20more%20than%20the%20normal%20price%3F\"><h3>Can I charge a role more than the normal price?<\/h3><\/dt>\n<dd><p>Yes, use Percentage markup. It is less common than discounting, but useful for surcharging a segment or running a higher retail tier alongside a base trade price.<\/p><\/dd>\n<dt id=\"can%20guests%20get%20a%20price%20rule%20rather%20than%20hidden%20prices%3F\"><h3>Can guests get a price rule rather than hidden prices?<\/h3><\/dt>\n<dd><p>Yes. Choose the \"Guest (not logged in)\" role in a rule and logged-out visitors get that adjustment, the same as any other role.<\/p><\/dd>\n<dt id=\"will%20the%20discounted%20price%20look%20like%20a%20sale%20price%3F\"><h3>Will the discounted price look like a sale price?<\/h3><\/dt>\n<dd><p>By default yes \u2014 the original price is shown struck through next to the new price, the way WooCommerce shows a sale. You can turn that off under Display &amp; Guest Prices if you would rather show only the price the customer pays.<\/p><\/dd>\n<dt id=\"will%20it%20slow%20down%20my%20store%3F\"><h3>Will it slow down my store?<\/h3><\/dt>\n<dd><p>No. There are no extra database tables, no front-end scripts and no background processing. Prices are adjusted through WooCommerce's standard price filters, and variation price caching is preserved per role rather than disabled.<\/p><\/dd>\n<dt id=\"is%20it%20compatible%20with%20hpos%3F\"><h3>Is it compatible with HPOS?<\/h3><\/dt>\n<dd><p>Yes. The plugin declares compatibility with WooCommerce High-Performance Order Storage and works with both legacy and high-performance order tables.<\/p><\/dd>\n<dt id=\"what%20happens%20to%20my%20rules%20if%20i%20uninstall%3F\"><h3>What happens to my rules if I uninstall?<\/h3><\/dt>\n<dd><p>Uninstalling deletes the plugin's own settings, which includes your pricing rules. Product prices themselves are untouched \u2014 they simply go back to showing the same price to everyone.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.1.1<\/h4>\n\n<ul>\n<li>Fix: the selected variation's price was hidden on variable products when a pricing rule applied (WooCommerce's same-price detection). The discounted variation price now always displays.<\/li>\n<\/ul>\n\n<h4>1.1.0<\/h4>\n\n<ul>\n<li>New: show the original price struck through (sale-style display) when a rule lowers the price. Can be disabled under Display &amp; Guest Prices.<\/li>\n<\/ul>\n\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Initial release.<\/li>\n<\/ul>","raw_excerpt":"Role based pricing for WooCommerce: set wholesale and B2B prices per user role, storewide or per product, and hide prices from guests.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/368546","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=368546"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/woomanagers"}],"wp:attachment":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=368546"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=368546"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=368546"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=368546"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=368546"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=368546"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}