Pay for Payment adds a fee to any WooCommerce payment method: a flat amount, a percentage of the cart, or both. Use it for a cash-on-delivery fee or a card surcharge, so the methods that cost you money pay for themselves. Give the fee a negative amount and it becomes a discount that rewards customers who pick the payment method that’s cheapest for you.
What it does
- Flat amount and percentage: combine the two, for example “2.5% + 0.50”.
- Minimum and maximum: for a percentage fee, set the lowest and highest amount to charge, fixed part included.
- Discount instead of a fee: a negative amount favors cheaper payment methods instead of only penalizing the expensive ones.
- Percentage base: add shipping and taxes to the cart subtotal, or subtract coupons.
- Taxes: mark the fee as taxable, choose a tax class, or enter an amount that already includes tax. VAT-exempt customers are never charged tax on the fee.
- Free shipping: switch the fee off per payment method when shipping is free.
- Custom fee title: use placeholders such as
[FIXED_AMOUNT]or[PERCENT_AMOUNT]in the title. - Block checkout: besides the classic checkout, it has basic block checkout support and recalculates the fee when the customer changes the payment method. The Checkout block has to sit directly in the page content, not in a template part.
Settings
You set everything on one screen under WooCommerce → Settings → Pay for payment, which lists all your store’s payment methods, enabled or not. It also works for gateways whose own settings leave no room for extra fields (WooCommerce Payments, Stripe, Klarna). When you upgrade from version 2.x, your settings carry over automatically. Developers can adjust the fee with filters such as woocommerce_pay4pay_apply or woocommerce_pay4pay_{$payment_gateway_id}_amount. The fee applies at checkout only, not on the “Pay for order” page or on orders created in the admin. I don’t recommend the plugin for PayPal: its terms prohibit surcharges, so give a discount on the other methods instead.
Pro version and documentation
The free version charges one fee per payment method on each order. Pro adds conditions (cart total, country, shipping method, user role and more), several fee tiers per method, and fees on manually created orders and on the “Pay for order” page, all without code. You’ll find documentation, examples and the free vs Pro comparison on payforpayment.com, and you can try Pro for 7 days without entering a card.
I took the plugin over in 2017. It was originally written by Jörn Lund, thank you for the work.
Get involved
The plugin is free and open source. Reporting a bug, suggesting an improvement or leaving a review helps it most.
Do you need customization?
Modifications that will enhance the plugin development and help other users I offer for “adoption”. You pay half the development cost and I’ll deliver the other half for free.
If the modifications are only of limited use, are only for your usage, or do not match my idea of the plugin’s direction, they are charged at full price.