WooCommerce Fees and Discounts

Create powerful pricing incentives quickly and easily

View Prices View Demo

WooCommerce Fees and Discounts featured image

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

ak headshot 1

See more reviews

WooCommerce Fees and Discounts plugin features

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.

Pricing

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

Yearly   Lifetime

Yearly licences renew annually - cancel anytime

Lifetime licences are a one-time payment

Basic

$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

Pro

$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

Basic

$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

Pro

$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.

Gareth Harris

A full refund if you're not happy

I built this plugin myself and my team and I are available to support you personally. We want you to be 100% satisfied with your purchase so if, for any reason, this plugin doesn't meet your expectations over the next 14 days, let us know and we'll give you a full refund.

Your customer support team is absolutely superb. I have worked with Collins and Clint, and they have been helpful, patient, and incredibly easy to work with.

Amit FriedmanMobile Online

WhatsApp Image 2023 09 15 at 10.43.46

FAQs

Released26 November 2018
Last Updated30 May 2024
Version2.0.4
RequiresWooCommerce 3.0+
ChangelogView

Changelog for WooCommerce Fees and Discounts

= 2.0.4, 27 March 2024 =
* Added: wcfad_after_apply_cart_discount filter
* Fixed: duplicate notices on checkout page
* Fixed: migration page not getting displayed
* Updated: added step attribute to product level amount setting

= 2.0.3, 15 January 2024 =
* Added: wcfad_force_adjusted_price_as_max filter
* Added: wcfad_tier_min_step and wcfad_tier_max_step filters
* Fixed: cart item subtotal displays prices twice
* Fixed: PHP Deprecated warning in PHP 8.1
* Fixed: no discount displayed if bulk discount applies to all products and Fixed adjustment type is per product
* Fixed: product prices in cart are adjusted twice if user-role pricing is set
* Fixed: PHP Warnings in error log
* Fixed: fatal error in PHP 8 if product price is empty
* Fixed: original price is displayed in cart even if Display original price setting is disabled
* Fixed: prices in cart do not show user-role fees if product has add-on fields
* Fixed: original price is displayed twice in product page if both Dynamic Pricing and User Role Pricing are enabled
* Fixed: Order Total rule not getting applied if there are multiple rules for different user roles
* Fixed: parse error if WooCommerce not active
* Updated: coupons can now be excluded for all types of dynamic pricing

= 2.0.2, 27 November 2023 =
* Fixed: clear transients when rule deleted

= 2.0.1, 27 November 2023 =
* Fixed: parse error in cart

= 2.0.0, 21 November 2023 =
* Added: rule statuses - active, paused, scheduled
* Added: option to consolidate variations
* Added: discount on spend option
* Added: per product price rules
* Added: option to display strikethrough
* Added: scheduled discounts
* Added: option to display label as on-sale badge
* Added: option to display discounted products with sale products
* Added: display up-sell notifications
* Added: option to consolidate items with add-on fields
* Added: dynamic rules can be imported and exported
* Updated: migrate dynamic rules to custom post type

= 1.9.6, 23 September 2023 =
* Fixed: product-level user role pricing not applied to add-on fields in variable products
* Updated: compatibility with WooCommerce High-Performance order storage

= 1.9.5, 29 June 2023
* Added: wcfad_role_pricing_rules filter
* Updated: wcfad_original_price is reset when saving a product or saving Fees and Discounts settings

= 1.9.4, 24 April 2023 =
* Added: wcfad_validate_bulk_rule_buy_categories and wcfad_validate_bulk_rule_taxonomy filters
* Added: wcfad_validate_bulk_buy_cart_categories and wcfad_validate_bulk_rule_cart_taxonomy filters
* Fixed: discounts are applied to the mini cart more than once in some themes
* Updated: transients are now cleared every time a variable product is saved

= 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 items in cart
* 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

Pre-sales and Licensing

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 us know and we will take a look.

Do you offer refunds?

Yes, there’s a 14 day money back guarantee. The purpose of this guarantee is to give you plenty of time to assess the plugin to see if it will meet your needs.

During the 14 days, if you’ve got any questions about the plugin and what you are hoping to achieve with it, just raise a support ticket and we’ll get back to you.

You can find out how to register your refund request here.

Is there a free trial?

We don’t offer free trials or backend demos but all products are backed by a 14 money back guarantee so if the plugin isn’t what you wanted, we will issue you with a refund.

This allows you to spend time testing the plugin on your own environment, with your own theme and with your own plugins. It’s the best way to help you be sure that the plugin is what you want.

You can also upgrade your licence at any time – so, if you wish,  you can purchase a Yearly licence initially then upgrade to the Lifetime licence within the first year and just pay the difference.

If you have any questions during your 14 day refund period, you can raise a support ticket and we will get straight back to you.

How long is the licence valid for?

Yearly licences are valid for a year. During that time you are entitled to receive free updates and support. After 12 months, yearly licences will automatically renew. You can cancel at any time.

Lifetime licences are a single, one-off payment. Lifetime licences do not expire and you are entitled to receive all future updates for the plugin.

You can purchase a Yearly licence then upgrade to Lifetime if you wish. Upgrade within the first year to just pay the difference.

Can I upgrade my licence and just pay the difference?

Yes, you can upgrade your licence any time in the first year and just pay the difference. So if you want to upgrade from Basic to Pro or if you want to upgrade from Yearly to Lifetime, you can do so and only pay the difference in price.

Also, if you wish, you upgrade from one product to a bundle that contains that product and also only pay the difference. So you can buy one or more products then upgrade to the All Access Bundle and only pay the difference in price.

What’s the difference between Basic and Pro licences?

The Basic licence entitles you to updates and support for one site; the Pro licence entitles you to updates and support for unlimited sites.

You can try out the Basic licence first then upgrade to Pro at any time. Here’s how to upgrade your licence.

Is the plugin translatable?

Yes, all our plugins are fully translatable and many come with translations in various languages. If you wish to contribute your own translations, we can add those to the core plugin to ensure they don't get overwritten.

The plugins are also compatible with WPML and other popular multilingual plugins like LocoTranslate.

Features

How does bulk pricing work?

Bulk pricing allows you to offer discounts based on the quantity of products purchased by the customer.

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.

 

What are dynamic pricing rules?

WooCommerce Fees and Discount 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.

How does user role pricing work?

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

Can I apply fees or discounts for different payment gateways?

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

Screenshots

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

View Pricing