=== Payment Gateway Based Fees and Discounts for WooCommerce ===
Contributors: tychesoftwares
Donate link: https://www.paypal.me/TycheSoftwares
Tags: woocommerce, payment, gateway, fee, discount
Requires at least: 4.4
Tested up to: 6.7.2
Stable tag: 2.16.0
Requires PHP: 7.3
License: GNU General Public License v3.0
License URI: http://www.gnu.org/licenses/gpl-3.0.html
Set fees and discounts for WooCommerce payment gateways.
== Description ==
**[Payment Gateway Based Fees and Discounts for WooCommerce](https://www.tychesoftwares.com/store/premium-plugins/payment-gateway-based-fees-and-discounts-for-woocommerce-plugin/?utm_source=wprepo&utm_medium=topprolink&utm_campaign=WCPGBasedFees)** plugin extends WooCommerce by adding options to set **fees or discounts based on customer selected payment gateway**.
Payment gateway based fees and discounts can be added to **all payment gateways** including:
* standard WooCommerce payment gateways (Direct Bank Transfer (BACS), Cheque Payment, Cash on Delivery and PayPal),
* custom payment gateways added with any other plugin.
Fees and discounts can be set:
* globally for all products, or
* on per product basis.
### Check out the PRO version of [Payment Gateway Based Fees and Discounts for WooCommerce plugin](https://www.tychesoftwares.com/store/premium-plugins/payment-gateway-based-fees-and-discounts-for-woocommerce-plugin/?utm_source=wprepo&utm_medium=prolink2&utm_campaign=WCPGBasedFees).
Plugin requires **minimum setup**: after enabling the fee/discount for selected gateway (in WooCommerce > Settings > Payment Gateway Based Fees and Discounts), you can set:
* fee/discount value,
* fee/discount type: fixed or percent,
* additional fee/discount,
* minimum and maximum fee/discount values,
* minimum and/or maximum cart amount for adding the fee/discount,
* rounding options,
* taxation options,
* shipping options,
* product categories,
* customer countries and more.
### Some of our Pro plugins
1. **[Payment Gateway Based Fees and Discounts for WooCommerce - Pro](https://www.tychesoftwares.com/store/premium-plugins/payment-gateway-based-fees-and-discounts-for-woocommerce-plugin/?utm_source=wprepo&utm_medium=link&utm_campaign=WCPGBasedFees "Payment Gateway Based Fees and Discounts for WooCommerce - Pro")**
2. **[Abandoned Cart Pro for WooCommerce](https://www.tychesoftwares.com/store/premium-plugins/woocommerce-abandoned-cart-pro/?utm_source=wprepo&utm_medium=otherprolink&utm_campaign=WCPGBasedFees "Abandoned Cart Pro for WooCommerce")**
3. **[Booking & Appointment Plugin for WooCommerce](https://www.tychesoftwares.com/store/premium-plugins/woocommerce-booking-plugin/?utm_source=wprepo&utm_medium=link&utm_campaign=WCPGBasedFees "Booking & Appointment Plugin for WooCommerce")**
4. **[Order Delivery Date Pro for WooCommerce](https://www.tychesoftwares.com/store/premium-plugins/order-delivery-date-for-woocommerce-pro-21/?utm_source=wprepo&utm_medium=link&utm_campaign=WCPGBasedFees "Order Delivery Date Pro for WooCommerce")**
5. **[Product Delivery Date Pro for WooCommerce](https://www.tychesoftwares.com/store/premium-plugins/product-delivery-date-pro-for-woocommerce/?utm_source=wprepo&utm_medium=link&utm_campaign=WCPGBasedFees "Product Delivery Date Pro for WooCommerce")**
6. **[Deposits For WooCommerce](https://www.tychesoftwares.com/store/premium-plugins/deposits-for-woocommerce/?utm_source=wprepo&utm_medium=link&utm_campaign=WCPGBasedFees "Deposits For WooCommerce")**
7. **[Custom Order Status for WooCommerce - Pro](https://www.tychesoftwares.com/store/premium-plugins/custom-order-status-woocommerce/?utm_source=wprepo&utm_medium=link&utm_campaign=WCPGBasedFees "Custom Order Status for WooCommerce - Pro")**
8. **[Custom Order Numbers for WooCommerce - Pro](https://www.tychesoftwares.com/store/premium-plugins/custom-order-numbers-woocommerce/?utm_source=wprepo&utm_medium=link&utm_campaign=WCPGBasedFees "Custom Order Numbers for WooCommerce - Pro")**
9. **[Product Input Fields for WooCommerce - Pro](https://www.tychesoftwares.com/store/premium-plugins/product-input-fields-for-woocommerce/?utm_source=wprepo&utm_medium=link&utm_campaign=WCPGBasedFees "Product Input Fields for WooCommerce - Pro")**
10. **[Call for Price for WooCommerce - Pro](https://www.tychesoftwares.com/store/premium-plugins/woocommerce-call-for-price-plugin/?utm_source=wprepo&utm_medium=link&utm_campaign=WCPGBasedFees "Call for Price for WooCommerce - Pro")**
11. **[Price based on User Role for WooCommerce - Pro](https://www.tychesoftwares.com/store/premium-plugins/price-user-role-woocommerce/?utm_source=wprepo&utm_medium=link&utm_campaign=WCPGBasedFees "Price based on User Role for WooCommerce - Pro")**
12. **[Currency per Product for WooCommerce - Pro](https://www.tychesoftwares.com/store/premium-plugins/currency-per-product-for-woocommerce/?utm_source=wprepo&utm_medium=link&utm_campaign=WCPGBasedFees "Currency per Product for WooCommerce - Pro")**
### Some of our other free plugins
1. **[Abandoned Cart for WooCommerce](https://wordpress.org/plugins/woocommerce-abandoned-cart/ "Abandoned Cart for WooCommerce")**
2. **[Order Delivery Date for WooCommerce - Lite](https://wordpress.org/plugins/order-delivery-date-for-woocommerce/ "Order Delivery Date for WooCommerce - Lite")**
3. **[Product Delivery Date for WooCommerce - Lite](https://wordpress.org/plugins/product-delivery-date-for-woocommerce-lite/ "Product Delivery Date for WooCommerce")**
4. **[WooCommerce Print Invoice & Delivery Note](https://wordpress.org/plugins/woocommerce-delivery-notes/ "WooCommerce Print Invoice & Delivery Note")**
5. **[Custom Order Status for WooCommerce](https://wordpress.org/plugins/custom-order-statuses-woocommerce/ "Custom Order Status for WooCommerce")**
6. **[Custom Order Numbers for WooCommerce](https://wordpress.org/plugins/custom-order-numbers-for-woocommerce/ "Custom Order Numbers for WooCommerce")**
7. **[Product Input Fields for WooCommerce](https://wordpress.org/plugins/product-input-fields-for-woocommerce/ "Product Input Fields for WooCommerce")**
8. **[Call for Price for WooCommerce](https://wordpress.org/plugins/woocommerce-call-for-price/ "Call for Price for WooCommerce")**
9. **[Price based on User Role for WooCommerce](https://wordpress.org/plugins/price-by-user-role-for-woocommerce/ "Price based on User Role for WooCommerce")**
10. **[Currency per Product for WooCommerce](https://wordpress.org/plugins/currency-per-product-for-woocommerce/ "Currency per Product for WooCommerce")**
= Feedback =
* We are open to your suggestions and feedback. Thank you for using or trying out one of our plugins!
== Installation ==
1. Upload the entire plugin folder to the `/wp-content/plugins/` directory.
2. Activate the plugin through the "Plugins" menu in WordPress.
3. Go to "WooCommerce > Settings > Payment Gateway Based Fees and Discounts".
== External Services ==
This plugin communicates with our tracking server to send usage data **only** if the user has explicitly opted in to usage tracking. For detailed information about what is tracked, please refer to our [usage tracking documentation](https://www.tychesoftwares.com/docs/payment-gateway-based-fees-and-discounts-for-woocommerce/usage-trackings-payment-gateways/).
== Changelog ==
= 2.16.0 - 20/02/2025 =
* Fix - Titles of different payment gateways from the WooCommerce Payments plugin were not appearing on the payment gateway based settings page and under the per-product settings.
* Fix - The EveryPay payment gateway fees were not displayed on the checkout page, though the fees were still charged for the order.
* Fix - Percentage-based payment gateway fees did not account for Tip fees added via the WPC Order Tip for WooCommerce plugin. Added the 'external_fee_include_in_gateway_fee' filter to handle this.
* Fix - PHP Deprecated notice: Creation of dynamic property Alg_WC_Checkout_Fees::$fees is deprecated.
* Fix - The Global Extra Fee was not added on the checkout page when the WooCommerce Checkout Block was enabled and the WooCommerce Subscriptions plugin was active.
= 2.15.0 - 22/11/2024 =
* Fix - Translation loading was triggered too early, causing errors when changing the site language in WordPress 6.7.
* Tweak - Removed the call to our tracking server to fetch the deactivation reasons and added them in the plugin itself.
= 2.14.0 - 22/10/2024 =
* Fix - Deactivation survey request was being sent even though 'Skip & deactivate' was selected while deactivating the plugin.
* Fix - Compatibility issue with the WooCommerce Authorize.Net Gateway plugin.
* Fix - The payment gateway fees or discounts are not charged on the 'Pay for this order' page.
= 2.13.0 - 09/06/2024 =
* Fix - Added a nonce check for Cross-Site Request Forgery (CSRF) vulnerability on the reset button
* Fix – Payment Gateway fees did not update when the payment gateway was changed on WooCommerce Cart/Checkout blocks
* Fix - The maximum fee value option was not working as expected.
* Fix - A fatal error was shown when activating the 'WooCommerce Table Rate Shipping' plugin with our PGBF lite plugin.
= 2.12.2 - 01/04/2024 =
* Fix – Cross Site Request Forgery (CSRF) vulnerability.
= 2.12.1 - 21/03/2024 =
* Fix – Cross Site Request Forgery (CSRF) vulnerability.
= 2.12.0 - 27/02/2024 =
* Fix - The payment gateway fees are added twice when Woo Discount Rules plugins are activated.
* Fix - Payment gateway fees are not visible on the checkout block page.
* Fix - Compatibility with Woo Discount Rules plugins where the payment gateway fees are added twice.
* Fix - Compatibility with the Almapay payment plugin.
* Fix - Added hook/filter called 'alg_wc_checkout_fees_after_fees_added' & 'alg_wc_checkout_fees_after_order_updated' to customize fees.
* Fix - Payment gateway fees is not calculated for one of the Nexi XPay method.
= 2.11.0 - 21/11/2023 =
* Fix - Tax is being included for Discount.
* Fix - Option to show fees on cart page based on previously payment method was selected.
* Fix - Unable to remove fees from Edit Order Page.
* Fix - WooCommerce Fees is being removed when adding Order Fees in Admin Side.
* Dev - Percentage Fees option added for 'Global Extra Fee'.
* Fix - Cross Site Request Forgery (CSRF) vulnerability.
= 2.10.3 - 13/07/2023 =
* Fix - Fees are not getting recalculated on the backend when the payment gateway is changed after placing the order.
* Fix - Fatal errors while processing a refund on the edit order page.
= 2.10.2 - 04/07/2023 =
* Fix - After an order has been placed, fees are being duplicated.
* Fix - Fatal Errors on the checkout page with PHP 8.1.12.
* Fix - Added deactivation survey v2.
* Fix - Payment methods are collapses a moment after the page loads on "Change Payment" button of Subscription order.
= 2.10.1 - 20/06/2023 =
* Fix - Fatal error when High-Performance Order Storage (HPOS) is enabled on store.
= 2.10.0 - 20/06/2023 =
* Fix - Compatibility with "zipMoney(Zip Co) Payments Plugin for WooCommerce" plugin.
* Fix - Compatibility with "iyzico WooCommerce" plugin.
* Fix - Compatibility with the "Bykea.Cash � Online Payments" plugin.
* Fix - Compatibility with "ECPay" plugin.
* Fix - Compatibility with "bSecure � Your Universal Checkout" plugin.
* Fix - Made some changes to solve the conflict with Germanized for WooCommerce plugin.
* Fix - Incorrect fees amount when the fees is set in negative value and tax is enabled.
* Fix - Not possible to select the Payment Gateway on the checkout page when our plugin is activated.
* Fix - Fees & Discounts are not getting applied for the individual product.
* Fix - When we access the link from the Invoice to pay the payment, stripe card details fields are hidden.
* Fix - Fees are not getting recalculated on the backend when the payment gateway is changed after placing the order.
* Fix - Fatal Errors on the checkout page with PHP 8.1.12.
* Fix - Fatal Errors on error message after activating the plugin with PHP 8.2.4.
= 2.9.0 - 17/01/2023 =
* Fix - Fatal Errors on the checkout page with PHP 8.
* Fix - Fees are getting multiplied when we try to repay the subscription order.
= 2.8.0 - 15/11/2022 =
* Enhancement - Introduced compatibility with WooCommerce High Performance Order Storage.
= 2.7.0 - 12/07/2022 =
* Fix - Plugin strings are not getting translated according to the User's selected language.
* Fix - The fees should be applied after calculating the discounted price.
* Fix - Credit Card Details Fields are becoming invisible on the payment page.
* Fix - Compatibility with WooCommerce Subscriptions plugin.
* Fix - Discount is applied multiple times when customers try to pay for the order.
= 2.6.4 - 28/09/2021 =
* Fix - Zero priced products were showing the discount in the payment gateway info table on the product page. This is fixed now.
* Fix - When the order is created manually without any products in it and only WooCommerce fees are added at that time fees were not getting added. This is fixed now.
* Fix - Style and Script were loading all around admin side and not only on the particular page. This is fixed now.
* Fix - When taxes were enabled on the payment gateway fees, fatal error was coming on the pay for order page. This is fixed now.
= 2.6.3 - 12/05/2021 =
* Enhancement - Now the discount/fees will be added or removed on the "Pay for order" endpoint also.
* Fix - Compatibility with WooCommerce ERIP Gateway Payment plugin.
* Fix - Compatibility with Klarna payment gateway.
* Fix - HTML code was coming in the titles of payment gateway on settings page. This is fixed now.
= 2.6.2 - 12/11/2020 =
* Update compatibility with WooCommerce 4.7
* Fix - On backend the gateway fees were accepted only as whole numbers. This is fixed now.
* Fix - Getting errors in debug log when the option "Enable Tax" were enabled. This is fixed now.
* Fix - Includes string was not getting translated on the checkout page. This is fixed now.
* Fix - On checkout page taxname was not getting when the tax was included in the fees. This is fixed now.
= 2.6.1 - 20/03/2020 =
* Update compatibility with WooCommerce 4.0.0.
= 2.6 - 23/08/2019 =
* Made the plugin code compliant with WPCS standards.
* Added UTM tags for the Pro plugin links.
= 2.5.9 - 18/04/2019 =
* Fix - Fees are not being carried over from the Checkout page to the order.
* Fix - Discounts are not being applied to renewal orders for subscription products.
= 2.5.8 - 11/04/2019 =
* Added compatibility with WooCommerce Subscriptions.
* The plugin goes into continous loading of the cart at Checkout when precision is left blanks for rounding. Fixed the same.
* Added uninstall.php file to ensure the plugin data is deleted when the plugin is uninstalled.
= 2.5.7 - 01/02/2019 =
* Author name in the header has been changed.
= 2.5.6 - 16/11/2018 =
* Author name and URL updated due to handover of the plugins
= 2.5.5 - 31/10/2018 =
* Compatibility with WooCommerce 3.5.0 tested.
= 2.5.4 - 16/10/2018 =
* Dev - Current (i.e. chosen) payment gateway function rewritten (fixes the issue with 100% discount coupons on the checkout page - fees were not reapplied when coupon is removed).
= 2.5.3 - 12/10/2018 =
* Fix - Coupons usage with "WooCommerce Gift Certificates" plugin fixed.
* Fix - Settings hook priority increased, so gateways fees settings are not loaded too early (fixes the issue with "Mollie Payments for WooCommerce" plugin).
= 2.5.2 - 17/09/2018 =
* Dev - Code refactoring.
= 2.5.1 - 04/08/2018 =
* Fix - Product categories - Calculation type - Categories to exclude - Only for selected products - Option fixed.
* Dev - Admin settings descriptions updated.
* Dev - "States to include/exclude" options added.
= 2.5.0 - 04/08/2018 =
* Dev - Major code refactoring and clean up. Main plugin file and POT file renamed.
* Dev - Admin settings restyled and descriptions updated.
* Dev - "Reset section settings" options added.
* Dev - Raw input now allowed in all "Info" section templates.
= 2.4.0 - 30/07/2018 =
* Dev - "Merge All Fees" added to "General" section.
* Dev - "Global Extra Fee" added to "General" section.
* Dev - Current (i.e. chosen) payment gateway function rewritten (fixes the issue with "zipMoney" payment gateway).
* Dev - "Customer Countries" options added to both fees separately.
* Dev - "Europe", "European Union", "Europe excluding EU", "Eurozone", "Africa", "Asia", "Australia and Oceania", "Central America", "North America" and "South America" added as country selection.
* Dev - Eight more countries added to the list.
* Dev - "Info" admin settings section added (options moved from "General" section).
* Dev - Admin settings restyled.
* Dev - Plugin link updated from https://wpcodefactory.com to https://wpfactory.com.
* Dev - Code clean up.
= 2.3.3 - 07/01/2018 =
* Dev - Additional check added in `Alg_WC_Checkout_Fees_Settings_Gateways` (prevents AJAX error on some servers).
= 2.3.2 - 02/01/2018 =
* Dev - WooCommerce 3.2 compatibility - `WC_Tax::get_tax_total()` replaced with `get_cart_contents_taxes()` and `get_shipping_taxes()`.
* Dev - Additional check for `WC()->payment_gateways` to be set, added in `add_gateways_fees()`.
* Dev - Additional checks for tax class to exist added (in Core and Info).
* Dev - Additional checks if product's price is zero added (in Info).
* Dev - Per products settings JS file updated.
* Dev - "WC tested up to" added to the plugin header.
= 2.3.1 - 26/08/2017 =
* Dev - Info - `%product_price_diff_percent%` replaceable value added.
* Dev - Wrapping div (class `alg_checkout_fees`) added to meta box settings.
* Dev - "General" settings restyled.
= 2.3.0 - 16/08/2017 =
* Dev - "Aelia Currency Switcher for WooCommerce" plugin currency conversion filter added to: `get_max_ranges()`, `min_cart_amount`, `max_cart_amount`, `min_fee`, `max_fee`, `min_fee_2`, `max_fee_2`.
* Dev - "Coupons Rule" options added.
* Dev - Code refactoring.
* Dev - Settings restyled.
= 2.2.2 - 27/07/2017 =
* Fix - Removed additional check if `add_gateways_fees()` has already been executed (was added in v2.2.1).
* Dev - "Delete All Plugin Data" option added.
* Dev - Code cleanup etc.
= 2.2.1 - 22/07/2017 =
* Fix - Per Product - `custom_atts` for fields (step etc.) fixed.
* Fix - Additional check if `add_gateways_fees()` has already been executed added (this prevents fees duplicating on some servers).
= 2.2.0 - 27/06/2017 =
* Dev - WooCommerce 3.x.x compatibility - Deprecated `get_price_excluding_tax()`, `get_price_including_tax()`, `get_display_price()` notices fixed.
* Dev - WooCommerce 3.x.x compatibility - Deprecated `get_formatted_variation_attributes()` notice fixed.
* Dev - WooCommerce 3.x.x compatibility - Deprecated `get_country()` notice fixed.
* Dev - "Add Taxes" option added for both global and per product fees.
* Dev - `load_plugin_textdomain()` moved from `init` hook to constructor.
* Dev - Plugin header updated ("Text Domain" and "Domain Path" added).
* Dev - Plugin link updated from http://coder.fm to https://wpcodefactory.com.
= 2.1.1 - 04/10/2016 =
* Fix - Bug when local and global fees have same title, fixed.
* Fix - Categories restrictions wrongly applied to per product fees, fixed.
* Dev - "Max Range Options" options section added to "General" settings.
* Dev - "Override Global Fee" (main and additional) option added to per product settings.
* Dev - "Minimum Fee Value", "Maximum Fee Value", "Minimum Additional Fee Value" and "Maximum Additional Fee Value" options added to both local and global fees.
* Dev - "Minimum Cart Amount" and "Maximum Cart Amount" options title modified.
= 2.1.0 - 20/08/2016 =
* Fix - Tax bug fixed when "Categories to include - Calculation type" is equal to "Only for selected products".
* Fix - Tax bug fixed in info.
* Fix - "Categories to include - Calculation type" with value "Only for selected products" fixed when displaying info.
* Dev - "Categories to exclude - Calculation type." option added.
* Dev - "Categories to include (additional fee)." and "Categories to exclude (additional fee)." options added.
* Dev - Version system added.
* Dev - Author changed.
* Dev - Plugin renamed.
= 2.0.2 - 06/08/2016 =
* Fix - `sanitize_title()` added to `add_gateway_fees_settings_hook()` and removed from `output_sections()`.
* Dev - Multisite support added.
* Dev - "Variable Products Info" option added.
* Dev - "Categories to include - Calculation type" option added to global fees.
* Dev - Language (POT) file added.
* Dev - Author changed.
= 2.0.1 - 10/03/2016 =
* Fix - Additional checks in `add_gateway_fees_settings_hook()`.
= 2.0.0 - 01/03/2016 =
* Fix - Checked tab in admin per product fees is marked now.
* Fix - Info on Single Product bugs fixed: for variable products; for percent fees.
* Fix - "General" section in admin settings menu is marked bold by default.
* Dev - `%product_title%`, `%product_variation_atts%` added.
* Dev - Info on Single Product - `[alg_show_checkout_fees_full_info]` and `[alg_show_checkout_fees_lowest_price_info]` shortcodes added.
* Dev - Info on Single Product - Lowest Price Info on Single Product Page added.
* Dev - Info on Single Product - `%gateway_fee_title%` and `%gateway_fee_value%` removed from info.
* Dev - "Add Product Title to Fee/Discount Title" option added to "General > Fees/Discounts per Product" settings.
* Dev - "Hide Gateways Fees and Discounts on Cart Page" option added to "General" settings.
* Dev - "Exclude Shipping" option added for both global and per product fees.
* Dev - "Title" option added for optional "Additional fee" (per product and global).
* Dev - "Customer Countries" (include / exclude) options added to global fees.
* Dev - "Product Categories" (include / exclude) options added to global fees.
* Dev - Compatibility with "Aelia Currency Switcher for WooCommerce" plugin added (for fixed fees; for percent fees compatibility was already there).
* Dev - "Fee Calculation (for Fixed Fees)" options (once / by product quantity) added to per product fees.
* Dev - "Fee Calculation (for Percent Fees)" options (for all cart / by product) added to per product fees.
= 1.3.0 - 27/10/2015 =
* Dev - Second optional fee added.
= 1.2.0 - 30/09/2015 =
* Dev - Checkout fees/discounts info on single product frontend page added.
= 1.1.0 - 04/09/2015 =
* Dev - Checkout fees/discounts on per product basis added.
= 1.0.0 - 29/08/2015 =
* Initial Release.
== Upgrade Notice ==
= 2.5.0 =
Main plugin file has been renamed, so plugin must be re-activated after update.
= 1.0.0 =
This is the first release of the plugin.