Add a payment fee or a discount to any WooCommerce payment method: a flat amount, a percentage of the cart, or both together. Charge a cash-on-delivery fee, a card surcharge, or a checkout fee on any gateway — so the methods that cost you money pay for themselves. Or use a negative amount as a discount, rewarding shoppers who pick the method that costs you the least.
Configure everything from a single, WooCommerce-native settings screen — WooCommerce > Settings > Pay for payment — that lists every payment method your store has, enabled or not, in one place. This also covers gateways whose own settings screens don’t leave room for extra fields (WooCommerce Payments, Stripe, Klarna, and other React-based gateways), because the plugin no longer depends on the gateway’s own settings form.
Documentation, worked examples and the free/Pro comparison are at payforpayment.com.
Need the fee only on some orders? Pay for Payment Pro adds conditions (cart total, country, shipping method, user role and more), several fee tiers per method, and fees on manual and “Pay for order” orders — no code. Try it free for 7 days, no card needed.
Features
- Fixed charge and/or a percentage of the cart, combinable (“2.5% + 0.50”).
- Minimum and maximum caps — “charge at least” and “charge at most” limit the whole fee, fixed part included, whenever a percentage is set.
- Negative amounts turn the charge into a discount — reward shoppers for picking a cheaper payment method instead of only punishing expensive ones.
- Choose what the percentage is calculated from: cart subtotal plus any combination of shipping, coupons and cart taxes (details in the FAQ).
- Tax-aware: mark the fee taxable, pick its tax class (including “inherit”, the highest rate already present in the cart), or enter an amount that already includes tax.
- Disable for free or zero-cost shipping, per gateway.
- Custom fee title with placeholders —
[FIXED_AMOUNT], [PERCENT_AMOUNT], [CART_TOTAL], [MINIMUM_AMOUNT], [MAXIMUM_AMOUNT].
- VAT-exempt customers are never charged fee tax.
- Works on the classic checkout and, with basic support, on the WooCommerce block checkout — fees calculate and the total updates when the shopper changes payment method.
- Settings migrate automatically for stores upgrading from Pay for Payment 2.x; nothing to reconfigure, and your old settings are left exactly where they were.
- Plugin API for anything the UI doesn’t cover yet — see the FAQ.
Compatibility
- WooCommerce block checkout (basic support — see the FAQ for a known limitation with block themes).
- HPOS (WooCommerce’s custom order tables) — declared compatible.
- WPML — see the FAQ.
The fee is converted to the shopper’s currency, with nothing to switch on, by:
YayCurrency PRO was listed as compatible in 2.x. That conversion lives in YayCurrency, not in this plugin, and has not been retested against 3.0.
Version details and caveats are on the compatibility page.
Limitations
- PayPal: not recommended — PayPal’s Acceptable Use Policy prohibits surcharging PayPal payments. See the FAQ for the sanctioned alternative (a discount on other methods).
- Mercado Pago’s gateway has known issues handling WooCommerce fees; get in touch with Mercado Pago support if you run into this.
- The fee applies at checkout only. WooCommerce does not run cart fees on the “Pay for order” page (woocommerce/woocommerce#17794) or on orders you create in wp-admin, so no fee is added there. Nobody is over-charged either way: if a customer returns to the order-pay page and picks a different method, the previous method’s fee is removed. (Pro charges the fee on both — see below.)
- Block checkout support has one known gap — see the FAQ.
- Full list, with workarounds: known limitations.
Pay for Payment Pro
Everything above is free, forever — not a trial, and nothing in it is switched off later. When one fee per payment method stops being enough, Pro adds the rules and the reach:
- Conditional fees — charge only when the rule fits: cart total, coupon, product, product category, country or state, user role, shipping method, shipping zone or shipping class. “No COD fee above 2 000”, “card surcharge for wholesale customers only” — set up in the settings screen, no filter code.
- Multiple fee tiers per payment method — stack more than one rule on a gateway, applied first-match-wins (“2 % over 5 000, otherwise a flat 50”).
- Fees on manual and order-pay orders — charge the fee beyond checkout: on orders you create in wp-admin, and on the “Pay for order” page, where the customer sees each method’s fee and the resulting total before paying.
- Fee as a product line — write the fee as a line on a managed hidden product instead of a fee line, for invoicing and ERP exports that skip fee lines.
- Display controls — hide the fee on the cart page, or show each method’s fee beside its name at checkout so shoppers compare before they choose.
- Apple Pay and Google Pay via Stripe — the fee is priced into the express payment sheet before the shopper authorises, so the amount they approve is the amount the order charges.
- Direct support by email instead of the public forum.
One plan, every feature, on 1, 5 or 25 sites. Try it for 7 days with no card; after you buy, refunds run for 14 days under Freemius’ refund policy. Cancel any time — the free plugin keeps working and your settings stay put.
Compare free and Pro · See pricing and start the trial
Special Credits
Originally developed by Jörn Lund (@podpirate), who abandoned the project in 2016.