WooCommerce Fees and Discounts

Create powerful pricing incentives quickly and easily

View Prices View Demo

Create complex pricing rules quickly and easily

A complete solution for setting dynamic and role-based pricing

What customers say

I wanted something that offered bulk discounts and something that offered discounts to specific user roles throughout my site. The Fees and Discounts plugin fixed both of my problems with one plugin.

Andrew KunkelNutriFierce

See more reviews

Plugin Features and Information


Discounting is the most powerful sales device you have in your store. It will encourage your customers to buy more and spend more.

WooCommerce Fees and Discounts gives you several ways to apply discounts or fees to products. Choose the method that works best for you.

WooCommerce Discount Plugin

Fees and Discounts is a WooCommerce discount plugin, which allows you to apply different discounts for products depending on quantity, user role, or payment gateway. Adjustments can be applied globally, by category, or by specific products.

Fees and Discounts also allows you to exclude taxes for specified user roles.

View Prices

Bulk Pricing

You could offer a simple discount like this:

  • Buy 10 or more and get a 5% discount

Or you can layer it to create more and more attractive discounts depending on the quantities:

  • Buy 10 or more and get a 5% discount
  • Buy 20 or more and get a 10% discount
  • Buy 50 or more and get a 20% discount

WooCommerce Fees and Discounts makes it easy to create bulk pricing rules:

  • Create as many pricing tiers as you like
  • Apply bulk discounts to specific products, products in specified categories, or all products
  • Create different bulk pricing rules for different products

Display pricing tiers in a table

WooCommerce Fees and Discounts lets you display a product's pricing tiers in an easy to read table - so your customers can see exactly what they'd pay depending on the quantity of product they select.


View Prices

Dynamic Pricing Rules

The WooCommerce Fees and Discount plugin allows you to create discounts and fees for products based on simple rules that you set up. For example, 'Buy X Get Y Free' or 'Buy One Get One Free'.

Offers can apply to:

  • All items in the cart
  • Specific products
  • Products in specific categories

Furthermore, you can specify how many products the customer needs to purchase in order to qualify for the offer, and you can specify how many products they receive at the adjusted rate. You can also specify how the discount (or additional fee) is calculated, either a fixed fee or a percentage.

So you can do all kinds of deals, e.g.:

  • Buy one get one free
  • Buy two get one free
  • Buy three get two half price
  • Buy four get one at 10% off

And so on. There's no limit to how you want to structure the pricing rules.

You can also specify that the customer needs to buy items from a certain group of products in order to receive items from a second group of products. This means you can do promotions like:

  • Buy two laptops and get a free printer
  • Buy three cushions and get a rug half price
  • Buy three t-shirts and get the next one at 10% off

You can also add extra text to product pricing labels on the front end to advertise your promotions.

Rules are simple to set up. They take a matter of seconds to set up.

View Prices

User Role Pricing

WooCommerce Fees and Discounts is a user role pricing plugin. It allows you to sell your products at different prices depending on your customers' user roles.

  • Set discounts or premiums for each user role globally
  • Apply discounts or premiums for each user role by individual product
  • Apply discounts or free per user role per variation
  • Set discounts or premiums as a fixed amount or a percentage
  • Create bulk pricing rules and dynamic pricing rules for specific user roles
  • Exclude tax for specific user roles

View Prices

WooCommerce Payment Gateway Fees and Discounts

Using Fees and Discounts, you can also incentivise customers to choose certain payment gateways or levy additional charges on other gateways.

Each payment gateway has its own settings, applied independently, including:

  • Set a label to appear in the cart totals
  • Choose whether to apply a fee or a discount
  • Choose between a flat rate, fixed fee/discount or a percentage of the cart total
  • Choose whether to include shipping costs as part of the cart total
  • Specify a minimum cart total for the fee/discount to apply
  • Specify a maximum cart total for the fee/discount to apply
  • Specify a minimum fee/discount value (this is useful when your fee/discount is a percentage of the cart total, so you can set a minimum level for the fee or discount)
  • Specify a maximum fee/discount value (also useful when your fee/discount is a percentage of the cart total, so you can limit the overall fee or discount)
  • Select whether to apply tax to the fee
  • Select which tax class to use

View Prices

Product Data

Released26 November 2018
Last Updated25 January 2023
Current Version1.9.3
RequiresWooCommerce 3.0+

View Prices


= 1.9.3, 6 December 2022 =
* Added: pewc_disable_wcfad_on_addons filter
* Added: wcfad_cancel_qualifying_bulk_product_meta filter
* Added: wcfad_ignore_sale_prices_by_role filter
* Fixed: issue with variation prices if User Role Pricing is enabled

= 1.9.2, 14 September 2022 =
* Fixed: compatibility of discount pricing table with Better Variations grid view
* Fixed: product with no add-on fields reverts to original price instead of user role price if a product with add-on fields is added to the cart
* Fixed: item price in mini cart does not reflect discounts or fees
* Updated: rule tiers are now sorted by min quantity / total

= 1.9.1, 10 August 2022 =
* Fixed: "Apply tax to fees" setting in Payment Gateways was not being recognized if Dynamic Pricing is not in use
* Fixed: main price was not getting updated with the correct bulk price on variation change

= 1.9.0, 22 June 2022 =
* Added: compatibility with Add-Ons Ultimate add-on fields on product pages
* Added: option to exclude discounted products from further discounts from coupons
* Added: wcfad_pewc_adjust_field_prices and wcfad_pewc_adjust_look_up_table_prices filters
* Fixed: fatal error in wcfad_get_best_price_by_variation_id
* Fixed: PHP 8 compatibility issues
* Fixed: incorrect discount if discount is Fixed Fee on a specific variation
* Fixed: incorrect discounted prices in the cart if a product's price is set by a calculation field
* Updated: extra options for product discount table

= 1.8.8, 18 April 2022 =
* Added: French translation files
* Fixed: price range and pricing table display zero price if tier amount for fixed adjustments is blank
* Fixed: tax issues on bulk pricing if prices in cart is displayed excluding tax

= 1.8.7, 25 March 2022 =
* Fixed: tax issues on bulk pricing with fixed adjustments

= 1.8.6, 23 March 2022 =
* Added: wcfad_user_role_adjustment_amount_step filter
* Added: wcfad_count_all_items filter
* Fixed: discount doubling in cart with Add-Ons Ultimate for global user role rules
* Fixed: if Display each role prices is enabled, prices are duplicated if user is logged in
* Fixed: if Display each role prices is enabled, variable products display zero prices
* Fixed: conflict issue if there is an Order Total discount and a Bulk Pricing discount
* Fixed: dynamic pricing table on product page showing prices without tax
* Fixed: wcfad_show_original_price filter shows zero price
* Fixed: if role-based pricing for a variation is higher than the original price, it doesn't get used
* Updated: clear wcfad_available_variations and wcfad_best_variation_prices options when settings are saved
* Updated: adjust display of cart item prices if there is an order total percentage discount

= 1.8.5, 11 October 2021 =
* Added: wcfad_get_available_variations and wcfad_get_best_variation_prices
* Fixed: ensure bulk and order fees are always positive values
* Fixed: ensure $min set correctly in wcfad_get_adjusted_price
* Fixed: show label for all products in order total rule
* Fixed: payment gateway fees and discounts amount and double tax
* Fixed: respect Disabled setting in fees/discounts for payment gateways
* Fixed: Buy X Get X miscalculation
* Fixed: only show pricing table for a specific variation if discount is applied only to that variation
* Fixed: display role-based pricing set for a variation on a variable product's page
* Fixed: apply User Role Adjustments to the cart page
* Fixed: compatibility between user role pricing and Deposits and Part Payments
* Fixed: fees not affecting simple products
* Updated: only show 'User Roles' tab when role based pricing is enabled
* Updated: removed woocommerce_clear_cart_url function

= 1.8.4, 14 July 2021 =
* Added: wcfad_bulk_adjusted_items filter to exclude items from discount
* Added: wcfad_return_price_without_range filter
* Added: wcfad_adjusted_price and wcfad_adjusted_price_decimal_places to round price tiers
* Fixed: ensure calculated price from Add-Ons Ultimate is not overwritten
* Fixed: prevent role-based adjustments from compounding for users with multiple roles
* Fixed: tax missing from variable price range
* Fixed: prevent the same discount table showing multiple times for variable products
* Fixed: ensure discount table appears for category based rules

= 1.8.3, 17 May 2021 =
* Added: option to disable price label update in Fees and Discounts
* Added: option to list each role price
* Fixed: products with 0 price not discounted correctly
* Fixed: tax applied twice to discounts in certain circumstances
* Fixed: fee on cart total applied twice
* Fixed: adjustment type 'all' not respected
* Updated: fixed adjustments applied to the cart no longer displayed in price range or table

= 1.8.2, 7 April 2021 =
* Added: pewc_qty_changed trigger in wcfad-script.js
* Fixed: cart subtotal not adjusting when Add-Ons Ultimate active
* Fixed: variable product price tables
* Fixed: display correct pricing table and price range by user role
* Fixed: wcfad_get_cart_discount_value not calculating correct fee
* Fixed: order total discount not applied correctly
* Updated: pricing table shows correctly for variable products

= 1.8.1, 1 March 2021 =
* Added: discount rule for order total
* Fixed: variation price tables display correctly for category rules
* Fixed: variation price tables display correctly for variable products
* Fixed: shipping calculator update resets cart total without adjustments
* Fixed: discount tables for specific roles appearing for non-logged in users

= 1.8.0, 27 January 2020 =
* Added: specific role-based prices for variations
* Added: exclude tax by user role
* Fixed: correctly format role-based prices using wc_format_decimal
* Fixed: price with add-ons not adjusting correctly in cart
* Fixed: parse error causing Divi builder to hang
* Fixed: variation price tables display correctly when variations have different rules

= 1.7.4, 27 November 2020 =
* Fixed: simple products applying double discount in certain circumstances

= 1.7.3, 27 November 2020 =
* Fixed: variations not adjusted in Buy X Get Y
* Fixed: role-based adjustments getting doubled in certain circumstances
* Fixed: correctly display variation price range
* Updated: improved Subscriptions support
* Updated: improved Product Table Ultimate support
* Updated: allow global and product role-based adjustments

= 1.7.2, 2 November 2020 =
* Added: optional cache price range HTML
* Added: wcfad_display_discounted_products_on_sale filter
* Fixed: prices getting double adjustments
* Fixed: Buy X Get Y on all items firing adjustment too quickly
* Fixed: Buy X Get Y on products not discounting cheapest one
* Fixed: Buy X Get Y not discounting categories correctly
* Updated: return null price doesn't get overwritten in wcfad_get_price_html
* Updated: licence messaging

= 1.7.1, 2 October 2020 =
* Added: wcfad_show_original_price filter
* Fixed: top tier price showing range when max not specified
* Fixed: removed pewc_filter_default_price to prevent role based adjustments applied twice in Add-Ons Ultimate
* Fixed: display role-based prices in variable products' range
* Updated: reinstated set_price in cart for role-based price

= 1.7.0, 24 September 2020 =
* Added: roles field for bulk pricing rules
* Fixed: bulk rules evaluating when rule type set to BXGX
* Fixed: BXGX rule validation for count by all

= 1.6.6, 21 September 2020 =
* Added: wcfad_enable_add_ons_field_option filter
* Added: wcfad_payment_gateway_amount filter
* Added: added $count_all_items to wcfad_get_cart_discount_value
* Fixed: BXGY not correctly adjusting
* Fixed: bulk fixed adjustment not calculating for count by all

= 1.6.5, 30 July 2020 =
* Fixed: cart fee incorrectly calculated

= 1.6.4, 23 July 2020 =
* Fixed: product table for fixed adjustments showing incorrect prices

= 1.6.3, 23 July 2020 =
* Added: wcfad_variation_prices_price to display correct role-based price range for variable products
* Fixed: Buy X Get Y inccorectly discounting X not Y
* Fixed: role-based price not updating for fee adjustments
* Updated: show correct variation range
* Updated: get best role-based price for variations in wcfad_get_regular_price, not in cart
* Updated: only show variation pricing adjustments if role-based pricing is enabled
* Updated: removed woocommerce_available_variation filter, adjustments now covered by wcfad_get_regular_price

= 1.6.2, 17 July 2020 =
* Fixed: price ranges not calculating correctly for fixed discount rules

= 1.6.1, 16 July 2020 =
* Added: filter to include cart fees in payment gateway charges
* Fixed: update original_price in JS on show_variation
* Updated: fees applied as fixed adjustment correctly calculated

= 1.6.0, 14 July 2020 =
* Added: dynamically change product price on single product page when quantities updated
* Added: role-specific price fields
* Fixed: label not displaying on Buy X rules
* Fixed: correct number of items not discounting for Buy X Get Y
* Fixed: correctly update percentage prices in Add-Ons Ultimate
* Updated: performance improvements for price range filter on archive pages
* Updated: role-based price updated via woocommerce_product_get_price not woocommerce_before_calculate_totals
* Updated: removed pewc_filter_default_price filter
* Updated: dynamically change product price for Add-Ons Ultimate
* Updated: removed wcfad_plugin_updater on admin_init

= 1.5.2, 24 June 2020 =
* Fixed: parse error in functions-product.php for array_intersect

= 1.5.1, 23 June 2020 =
* Added: wcfad_exclude_bulk_product_ids filter
* Fixed: variation price tables not always displaying

= 1.5.0, 6 April 2020 =
* Added: enable cart-wide discounts using fees
* Added: apply fixed adjustments per product
* Fixed: global role-based rules not honoured in variable products

= 1.4.16, 9 March 2020 =
* Updated: wcfad_get_price_html filter to include variable products

= 1.4.15, 5 March 2020 =
* Added: price_html suffix in wcfad_get_price_html
* Added: separate pricing tables for each variation
* Fixed: chosen variation price not displaying when Add-Ons Ultimate is active

= 1.4.14, 26 February 2020 =
* Added: wcfad_get_price_html filter to add incentive pricing

= 1.4.13, 3 February 2020 =
* Added: role-based rules for variations
* Fixed: correctly display price ranges

= 1.4.12, 27 January 2020 =
* Added: initial integration with Add-Ons Ultimate for role-based product prices
* Fixed: don't check dynamic pricing rules when dynamic pricing is not enabled
* Updated: range column for equal min/max quantities in pricing table

= 1.4.11, 20 January 2020 =
* Added: wcfad_exclude_from_role_based_rules filter to exclude products from global role-based rules
* Fixed: role based pricing for variations

= 1.4.10, 9 January 2020 =
* Added: German translation
* Fixed: tiers not duplicating correctly
* Fixed: adjusted price displaying incorrectly on product with single variation
* Fixed: only skip buy products in validating bxgy

= 1.4.9, 23 December 2019 =
* Fixed: global user role pricing

= 1.4.8, 22 December 2019 =
* Fixed: excluded category products getting counted

= 1.4.7, 10 December 2019 =
* Fixed: check for variable products in bulk pricing rules

= 1.4.6, 5 December 2019 =
* Fixed: check for variable products

= 1.4.5, 4 December 2019 =
* Fixed: parse error in cart from empty rules
* Fixed: parse error on product page

= 1.4.4, 13 November 2019 =
* Added: woocommerce_json_search_products_and_variations filter
* Fixed: first tier not saving correctly
* Fixed: adjusted product price showing as 0
* Updated: wcfad_dynamic_pricing option name to wcfad_dynamic_pricing_enabled

= 1.4.3, 3 September 2019 =
* Added: wcfad_filter_cart_item_subtotal filter
* Fixed: calculate tax correctly for adjusted cart items

= 1.4.2, 22 August 2019 =
* Fixed: display price with correct tax settings

= 1.4.1, 21 August 2019 =
* Fixed: prevent redirection from admin

= 1.4.0, 12 August 2019 =
* Added: user role pricing
* Added: product price HTML displays price range
* Updated: product price HTML respects sale prices and variation pricing range

= 1.3.4, 21 June 2019 =
* Fixed: missing payment gateways submenu

= 1.3.3, 29 May 2019 =
* Fixed: fees not calculating correctly in cart totals

= 1.3.2, 28 May 2019 =
* Fixed: rounding price down to 0

= 1.3.1, 9 May 2019 =
* Fixed: enqueue admin scripts only where needed

= 1.3.0, 8 May 2019 =
* Added: integration with Product Add Ons Ultimate
* Updated: allow decimals in Payment Gateway number fields

= 1.2.0, 26 March 2019 =
* Added: tiered quantity discounts and fees

= 1.1.3, 15 February 2019 =
* Updated: licence updater ready for migration

= 1.1.2, 21 January 2019 =
* Added: Maximum items field

= 1.1.1, 15 January 2019 =
* Fixed: incorrect discounts on 'All' items

= 1.1.0, 7 January 2019 =
* Added: dynamic pricing

= 1.0.0, 26 November 2018 =
* Initial commit

View Prices


See how the plugin looks on the back and front ends. Click the images to enlarge them.


All purchases are covered by a 14 day money back guarantee. Prices are in US Dollars.

Yearly   Lifetime

Yearly licences renew annually

Lifetime licences are a one-time payment


$59.00 + VAT *

Use on a single site?Use this plugin on one production site

Renews annually?This plugin will automatically renew every year. If you cancel it, you can continue to use the plugin but will not receive support or updates

14 day money back guarantee?If the plugin isn't what you want, just drop us a line within 14 days for a full refund


$99.00 + VAT *

Use on unlimited sites?Use this plugin on as many sites as you like

Renews annually?This plugin will automatically renew every year. If you cancel it, you can continue to use the plugin but will not receive support or updates

14 day money back guarantee?If the plugin isn't what you want, just drop us a line within 14 days for a full refund


$149.00 + VAT *

Use on a single site?Use this plugin on one production site

One-time payment?This is a single one-time charge. You'll recieve support and updates for the lifetime of the product

14 day money back guarantee?If the plugin isn't what you want, just drop us a line within 14 days for a full refund


$249.00 + VAT *

Use on unlimited sites?Use this plugin on as many sites as you like

One-time payment?This is a single one-time charge. You'll recieve support and updates for the lifetime of the product

14 day money back guarantee?If the plugin isn't what you want, just drop us a line within 14 days for a full refund

* Prices exclude VAT, if applicable. EU businesses with a valid VAT number can zero off the tax.

A full refund if you're not happy

All products are covered by a 14 day money back guarantee so if you find the plugin doesn't meet your expectations, just let me know and I'll refund your purchase.


Plugins to extend your WooCommerce store with powerful new features


Rapid support and great service - my business depends upon your happiness


14 day money back guarantee so you can buy with peace of mind


What are the differences between the Basic and Pro licences?

The Basic licence entitles you to updates and support for 1 site. The Pro licence entitles you to updates and support for unlimited sites.

How long is the licence valid for?

Unless otherwise stated, licences are valid for a year. During that time you are entitled to receive free updates and support. Licences will automatically renew unless cancelled.

Will the licence still work if I cancel my subscription?

If you cancel your subscription, you'll still be entitled to free updates and support until the end of the subscription period. After that, the plugin will continue to work but you'll no longer be entitled to updates or support.

Is there a free trial?

I don't offer free trials but all products are backed by a 14 day money back guarantee so if the plugin isn't what you wanted, I will issue you with a refund.

Do you offer refunds?

Yes, there's a 14 day money back guarantee so if you purchase the plugin and decide you no longer want it, just drop me a line.

Will this plugin work with my theme?

All my plugins are independent of the theme being used so there shouldn't be any problems. If you do run into any issues, just let me know and I will take a look.

View Prices

View Pricing