{"id":47608,"date":"2016-05-11T14:10:17","date_gmt":"2016-05-11T14:10:17","guid":{"rendered":"https:\/\/wordpress.org\/plugins-wp\/woo-groups-discount\/"},"modified":"2026-06-10T06:20:38","modified_gmt":"2026-06-10T06:20:38","slug":"woo-groups-discount","status":"publish","type":"plugin","link":"https:\/\/wordpress.org\/plugins\/woo-groups-discount\/","author":11708513,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"5.0.0","stable_tag":"5.0.0","tested":"7.0","requires":"5.6","requires_php":"7.2","requires_plugins":null,"header_name":"Groups Discount for WooCommerce","header_author":"eggemplo","header_description":"","assets_banners_color":"87aaab","last_updated":"2026-06-10 06:20:38","external_support_url":"","external_repository_url":"","donate_link":"https:\/\/growthplugins.com","header_plugin_uri":"http:\/\/www.eggemplo.com\/plugins\/woocommerce-groups-discount","header_author_uri":"http:\/\/www.eggemplo.com","rating":3.5,"author_block_rating":0,"active_installs":50,"downloads":4830,"num_ratings":2,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.0":{"tag":"1.0","author":"eggemplo","date":"2016-05-12 13:57:59"},"2.0":{"tag":"2.0","author":"eggemplo","date":"2016-08-18 15:07:42"},"2.1":{"tag":"2.1","author":"eggemplo","date":"2016-08-22 16:43:49"},"2.2":{"tag":"2.2","author":"eggemplo","date":"2016-12-17 19:59:35"},"2.3":{"tag":"2.3","author":"eggemplo","date":"2017-02-24 17:32:16"},"3.0":{"tag":"3.0","author":"eggemplo","date":"2017-04-07 15:34:31"},"3.1.0":{"tag":"3.1.0","author":"eggemplo","date":"2017-04-13 07:46:24"},"3.1.1":{"tag":"3.1.1","author":"eggemplo","date":"2017-05-22 16:29:42"},"3.2.0":{"tag":"3.2.0","author":"eggemplo","date":"2017-07-24 14:16:00"},"4.0.0":{"tag":"4.0.0","author":"eggemplo","date":"2025-11-13 22:31:24"},"5.0.0":{"tag":"5.0.0","author":"eggemplo","date":"2026-06-10 06:20:38"}},"upgrade_notice":{"5.0.0":"<p>Major release: extensible audience system, WordPress Roles support, per-category discounts, modernized admin, HPOS compatibility. Existing Groups configurations are migrated automatically \u2014 no manual action required.<\/p>"},"ratings":{"1":0,"2":"1","3":0,"4":0,"5":"1"},"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3395369,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3395369,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-772x250.png":{"filename":"banner-772x250.png","revision":3395369,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.0","2.0","2.1","2.2","2.3","3.0","3.1.0","3.1.1","3.2.0","4.0.0","5.0.0"],"block_files":[],"assets_screenshots":{"screenshot-1.jpg":{"filename":"screenshot-1.jpg","revision":3566886,"resolution":"1","location":"plugin","width":2546,"height":1224},"screenshot-3.jpg":{"filename":"screenshot-3.jpg","revision":3566886,"resolution":"3","location":"plugin","width":924,"height":491},"screenshot-2.jpg":{"filename":"screenshot-2.jpg","revision":3566886,"resolution":"2","location":"plugin","width":2550,"height":1136}},"screenshots":{"1":"<strong>Method Settings<\/strong> \u2014 choose between percentage or fixed amount discounts, select the base price and configure how multiple audiences and categories are resolved.","2":"<strong>Audience Configuration<\/strong> \u2014 set a discount for any WordPress role or Groups group, organized by provider.","3":"<strong>Customer View<\/strong> \u2014 logged-in users automatically see their own price; optionally with the original price shown alongside."}},"plugin_section":[],"plugin_tags":[10553,15963,11917,51032,65073],"plugin_category":[44,45],"plugin_contributors":[83315],"plugin_business_model":[],"class_list":["post-47608","plugin","type-plugin","status-publish","hentry","plugin_tags-b2b","plugin_tags-dynamic-pricing","plugin_tags-user-roles","plugin_tags-wholesale","plugin_tags-wholesale-pricing","plugin_category-discussion-and-community","plugin_category-ecommerce","plugin_contributors-eggemplo","plugin_committers-eggemplo"],"banners":{"banner":"https:\/\/ps.w.org\/woo-groups-discount\/assets\/banner-772x250.png?rev=3395369","banner_2x":false,"banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/woo-groups-discount\/assets\/icon-128x128.png?rev=3395369","icon_2x":"https:\/\/ps.w.org\/woo-groups-discount\/assets\/icon-256x256.png?rev=3395369","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/woo-groups-discount\/trunk\/screenshot-1.jpg?rev=3566886","caption":"<strong>Method Settings<\/strong> \u2014 choose between percentage or fixed amount discounts, select the base price and configure how multiple audiences and categories are resolved."},{"src":"https:\/\/ps.w.org\/woo-groups-discount\/trunk\/screenshot-2.jpg?rev=3566886","caption":"<strong>Audience Configuration<\/strong> \u2014 set a discount for any WordPress role or Groups group, organized by provider."},{"src":"https:\/\/ps.w.org\/woo-groups-discount\/trunk\/screenshot-3.jpg?rev=3566886","caption":"<strong>Customer View<\/strong> \u2014 logged-in users automatically see their own price; optionally with the original price shown alongside."}],"raw_content":"<!--section=description-->\n<p>Groups Discount for WooCommerce applies personalized pricing to your customers based on the user roles or groups they belong to. Logged-in users see their own discounted prices automatically, without coupons or manual intervention.<\/p>\n\n<p>Version 5.0.0 introduces an extensible <strong>audience<\/strong> model: discounts can now be driven by WordPress roles out of the box, by the free Groups plugin, or by paid add-ons that connect to other membership systems.<\/p>\n\n<h4>Key features<\/h4>\n\n<ul>\n<li><strong>Two discount methods<\/strong> \u2014 percentage (e.g. 0.1 = 10% off) or fixed amount (e.g. 5 = 5 off in your store currency).<\/li>\n<li><strong>Choose the base price<\/strong> \u2014 apply the discount to the regular price or to the sale price when it exists.<\/li>\n<li><strong>Per-category overrides<\/strong> \u2014 set a different discount for specific product categories. Configurable per audience, with a tie-break policy when a product belongs to several categories.<\/li>\n<li><strong>Multi-audience conflict resolution<\/strong> \u2014 when a customer belongs to several roles or groups, pick the higher discount, the lower one, or follow a deterministic order.<\/li>\n<li><strong>Optional dual price display<\/strong> \u2014 show original and discounted prices side by side, with a customizable label.<\/li>\n<li><strong>Built-in audience sources<\/strong> \u2014 WordPress Roles (always available) and the free Groups plugin (when installed).<\/li>\n<li><strong>Pluggable architecture<\/strong> \u2014 any third-party plugin can register itself as an audience source through the <code>wgd_audience_providers<\/code> filter.<\/li>\n<li><strong>Compatible with simple and variable products<\/strong>, including variations.<\/li>\n<li><strong>WooCommerce HPOS and Cart\/Checkout Blocks<\/strong> compatibility declared.<\/li>\n<li><strong>Translation ready<\/strong> (Spanish bundled).<\/li>\n<\/ul>\n\n<h4>Typical use cases<\/h4>\n\n<ul>\n<li>Wholesale and B2B stores that need automatic discounts for verified buyers.<\/li>\n<li>Membership sites that reward subscribers with member-only prices.<\/li>\n<li>VIP and loyalty programs that grant escalating discounts.<\/li>\n<li>Employee, student or staff stores.<\/li>\n<\/ul>\n\n<h4>Audience sources<\/h4>\n\n<p>Two providers ship with the free plugin:<\/p>\n\n<ul>\n<li><strong>WordPress Roles<\/strong> \u2014 always available. Assign a discount to any role (Customer, Subscriber, custom roles, etc.).<\/li>\n<li><strong>Groups<\/strong> \u2014 appears automatically when the free <a href=\"https:\/\/wordpress.org\/plugins\/groups\/\">Groups<\/a> plugin is active.<\/li>\n<\/ul>\n\n<p>Additional integrations are available as paid add-ons (Paid Memberships Pro, MemberPress, WooCommerce Memberships, Restrict Content Pro, Ultimate Member). They show up in the <strong>Add-ons<\/strong> tab inside the plugin once the core is installed.<\/p>\n\n<h4>Requirements<\/h4>\n\n<ul>\n<li>WooCommerce (required).<\/li>\n<li>Optionally, the <a href=\"https:\/\/wordpress.org\/plugins\/groups\/\">Groups<\/a> plugin if you want to use Groups as an audience source.<\/li>\n<\/ul>\n\n<h4>Documentation<\/h4>\n\n<p>Full documentation and add-on catalog: <a href=\"https:\/\/growthplugins.com\/plugin\/groups-discount-for-woocommerce\/\">growthplugins.com<\/a>.<\/p>\n\n<!--section=installation-->\n<h4>Automatic installation<\/h4>\n\n<ol>\n<li>In your WordPress admin, go to <strong>Plugins \u2192 Add New<\/strong>.<\/li>\n<li>Search for \"Groups Discount for WooCommerce\".<\/li>\n<li>Click <strong>Install Now<\/strong> and then <strong>Activate<\/strong>.<\/li>\n<li>Go to <strong>WooCommerce \u2192 Groups Discount<\/strong> to configure the plugin.<\/li>\n<\/ol>\n\n<h4>Manual installation<\/h4>\n\n<ol>\n<li>Download the plugin ZIP file.<\/li>\n<li>Go to <strong>Plugins \u2192 Add New \u2192 Upload Plugin<\/strong> in your WordPress admin.<\/li>\n<li>Upload the ZIP and click <strong>Install Now<\/strong>, then <strong>Activate Plugin<\/strong>.<\/li>\n<li>Go to <strong>WooCommerce \u2192 Groups Discount<\/strong> to configure the plugin.<\/li>\n<\/ol>\n\n<h4>Initial setup<\/h4>\n\n<ol>\n<li>In <strong>WooCommerce \u2192 Groups Discount \u2192 Method<\/strong>, choose the discount method (rate or amount), the base price (regular or sale), and how to resolve users in multiple audiences.<\/li>\n<li>In the <strong>Audiences<\/strong> tab, set a discount value for any WordPress role and, if Groups is active, for any group.<\/li>\n<li>Optionally, in the <strong>Categories<\/strong> tab, override the discount on specific product categories per audience.<\/li>\n<li>Save. Logged-in users matching an audience will now see their personalized prices.<\/li>\n<\/ol>\n\n<p>For rate discounts, <code>0.1<\/code> means 10% off, <code>0.25<\/code> means 25% off, etc. For fixed amounts, enter the discount in your store currency.<\/p>\n\n<!--section=faq-->\n<dl>\n<dt id=\"is%20the%20groups%20plugin%20required%3F\"><h3>Is the Groups plugin required?<\/h3><\/dt>\n<dd><p>No. Starting with version 5.0.0, only WooCommerce is required. WordPress Roles are always available as an audience source. Groups becomes available as an audience source when its free plugin is active.<\/p><\/dd>\n<dt id=\"what%20discount%20methods%20are%20available%3F\"><h3>What discount methods are available?<\/h3><\/dt>\n<dd><p>Two:<\/p>\n\n<ul>\n<li><strong>Rate (percentage)<\/strong> \u2014 <code>0.1<\/code> is 10% off, <code>0.25<\/code> is 25% off, etc.<\/li>\n<li><strong>Fixed amount<\/strong> \u2014 <code>5<\/code> is a 5-unit discount in your store currency.<\/li>\n<\/ul>\n\n<p>The method is global to the plugin and applies to every audience.<\/p><\/dd>\n<dt id=\"can%20i%20apply%20discounts%20on%20top%20of%20sale%20prices%3F\"><h3>Can I apply discounts on top of sale prices?<\/h3><\/dt>\n<dd><p>Yes. In <strong>Method<\/strong>, choose whether the discount is computed from the regular price or from the sale price (when present).<\/p><\/dd>\n<dt id=\"what%20happens%20if%20a%20user%20belongs%20to%20several%20audiences%3F\"><h3>What happens if a user belongs to several audiences?<\/h3><\/dt>\n<dd><p>The plugin picks one according to the policy you choose in <strong>Method \u2192 If in several groups<\/strong>:<\/p>\n\n<ul>\n<li><strong>Higher discount<\/strong> \u2014 the customer gets the best price.<\/li>\n<li><strong>Lower discount<\/strong> \u2014 the customer gets the smallest discount.<\/li>\n<li><strong>Higher group ID<\/strong> \/ <strong>Lower group ID<\/strong> \u2014 deterministic ordering.<\/li>\n<\/ul><\/dd>\n<dt id=\"can%20i%20set%20different%20discounts%20per%20product%20category%3F\"><h3>Can I set different discounts per product category?<\/h3><\/dt>\n<dd><p>Yes. The <strong>Categories<\/strong> tab lets you override the audience default discount on specific categories. A separate policy controls what happens when a product belongs to several configured categories.<\/p><\/dd>\n<dt id=\"does%20it%20support%20variable%20products%3F\"><h3>Does it support variable products?<\/h3><\/dt>\n<dd><p>Yes, including all variations.<\/p><\/dd>\n<dt id=\"will%20customers%20see%20the%20original%20price%3F\"><h3>Will customers see the original price?<\/h3><\/dt>\n<dd><p>Optionally. Enable <strong>Display original prices<\/strong> in <strong>Method<\/strong> to show the original and the discounted price together. The label is customizable.<\/p><\/dd>\n<dt id=\"does%20it%20slow%20my%20store%20down%3F\"><h3>Does it slow my store down?<\/h3><\/dt>\n<dd><p>Discount computations are memoized per request so the cost is paid once per product render. The plugin declares compatibility with WooCommerce HPOS and Cart\/Checkout Blocks.<\/p><\/dd>\n<dt id=\"is%20it%20translation%20ready%3F\"><h3>Is it translation ready?<\/h3><\/dt>\n<dd><p>Yes. Spanish (es_ES) is bundled.<\/p><\/dd>\n<dt id=\"how%20do%20i%20extend%20it%20with%20my%20own%20audience%20source%3F\"><h3>How do I extend it with my own audience source?<\/h3><\/dt>\n<dd><p>Implement the <code>WGD_Audience_Provider<\/code> interface and register your provider through the <code>wgd_audience_providers<\/code> filter. Full developer documentation is on our website.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>5.0.0<\/h4>\n\n<p>Major release.<\/p>\n\n<ul>\n<li><strong>Extensible audience architecture.<\/strong> Discounts can now be driven by any user-segmentation source through the new <code>WGD_Audience_Provider<\/code> interface and the <code>wgd_audience_providers<\/code> filter.<\/li>\n<li><strong>WordPress Roles support out of the box.<\/strong> Assign discounts to any role; always available regardless of which membership plugins are installed.<\/li>\n<li><strong>Groups plugin is no longer required.<\/strong> WooCommerce remains the only mandatory dependency. Groups is now an optional audience source.<\/li>\n<li><strong>Per-category discounts per audience.<\/strong> New \"Categories\" matrix in the admin, with a configurable tie-break policy when a product belongs to several categories.<\/li>\n<li><strong>Add-ons tab.<\/strong> Surfaces optional paid providers (Paid Memberships Pro, MemberPress, WooCommerce Memberships, Restrict Content Pro, Ultimate Member) and marks installed ones as active.<\/li>\n<li><strong>HPOS and Cart\/Checkout Blocks compatibility declared.<\/strong><\/li>\n<li><strong>Modernized admin UI<\/strong> following WordPress best practices: <code>wrap<\/code>, <code>nav-tab-wrapper<\/code>, <code>form-table<\/code>, native notices, scoped styles loaded only where needed, sticky-column scrollable matrix for the Categories tab.<\/li>\n<li><strong>Security hardening:<\/strong> nonces on every form, capability checks, sanitization of all input, escaping of all output, explicit <code>sanitize_callback<\/code> for every registered setting.<\/li>\n<li><strong>Performance:<\/strong> request-scoped memoization of user audiences, computed commissions and category overrides; provider-level caches to avoid repeated database lookups.<\/li>\n<li><strong>Settings link<\/strong> added on the Plugins list screen.<\/li>\n<li><strong>Automatic, one-time migration<\/strong> of legacy <code>wgd-{group_id}<\/code> and <code>wgd-cat-{cat_id}-{group_id}<\/code> options to the new audience-namespaced format. No manual action required; existing setups keep working unchanged.<\/li>\n<li><strong>New filters for extension:<\/strong> <code>wgd_audience_providers<\/code>, <code>wgd_user_audiences<\/code>, <code>wgd_discount_value<\/code>, <code>wgd_addons<\/code>.<\/li>\n<\/ul>\n\n<h4>4.0.0<\/h4>\n\n<ul>\n<li>Updated plugin name to comply with WordPress.org trademark guidelines.<\/li>\n<li>Plugin display name changed from \"Woo Groups Discount\" to \"Groups Discount for WooCommerce\".<\/li>\n<li>Updated all references to WooCommerce trademark throughout the plugin.<\/li>\n<li>Compatible with WordPress 6.8.3 and WooCommerce 10.3.5.<\/li>\n<\/ul>\n\n<h4>3.2.0<\/h4>\n\n<ul>\n<li>Fixed some issues with variable products.<\/li>\n<li>Compatible with WooCommerce 3.1.1.<\/li>\n<\/ul>\n\n<h4>3.1.1<\/h4>\n\n<ul>\n<li>Fixed cart 3.x issues.<\/li>\n<\/ul>\n\n<h4>3.1.0<\/h4>\n\n<ul>\n<li>Improved translation system.<\/li>\n<li>Fixed an issue with simple products.<\/li>\n<\/ul>\n\n<h4>3.0<\/h4>\n\n<ul>\n<li>WooCommerce 3.0 full compatibility.<\/li>\n<\/ul>\n\n<h4>2.3<\/h4>\n\n<ul>\n<li>Improved the administration section.<\/li>\n<\/ul>\n\n<h4>2.2<\/h4>\n\n<ul>\n<li>Fixed clear products cache when plugin values are updated.<\/li>\n<li>Compatible with WordPress 4.7 and WooCommerce 2.6.9.<\/li>\n<\/ul>\n\n<h4>2.1<\/h4>\n\n<ul>\n<li>Updated translation system.<\/li>\n<li>Fixed: commission calculated when rate is selected and commission is set to zero.<\/li>\n<li>Fixed: display both prices in admin screen.<\/li>\n<\/ul>\n\n<h4>2.0<\/h4>\n\n<ul>\n<li>Added textarea to set the dual-price text.<\/li>\n<li>Fixed original price displayed when the discount is not applicable.<\/li>\n<li>Renamed filter <code>wwo_group_pricing_display_original_prices<\/code> to <code>woo_group_pricing_display_original_prices<\/code>.<\/li>\n<li>Compatible with WordPress 4.6 and WooCommerce 2.6.4.<\/li>\n<\/ul>\n\n<h4>1.0<\/h4>\n\n<ul>\n<li>Initial release.<\/li>\n<\/ul>","raw_excerpt":"Automatic per-audience pricing for WooCommerce \u2014 discounts driven by WordPress roles, the Groups plugin and other membership sources.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/47608","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=47608"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/eggemplo"}],"wp:attachment":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=47608"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=47608"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=47608"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=47608"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=47608"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=47608"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}