DocumentationGetting startedLimitations

Limitations

Here is everything this plugin cannot do, and everything someone else's rules stop it doing. Each entry says who runs into it and whether there is a way around it.

Free and ProUpdated for 3.0.0

Payment providers

A gateway that combines several payment methods charges one feeFree and ProWay around it

A fee belongs to a WooCommerce payment method. Some providers register one method and let the shopper pick card, Klarna or a wallet inside the provider’s own element. Stripe’s “Universal Payment Methods” is the one most stores meet. WooCommerce only ever sees the outer method, so that is the one fee it charges. What the shopper picks inside the element changes nothing.

The symptom is a fee that never appears: a rule set on “Credit Cards (Stripe)” cannot fire while the store checks out through “Universal Payment Methods”, because those are two different methods and only the second one is in play.

Most providers register the individual methods as well as the combined one. Switch the individual gateways on instead, and each gets its own fee — a card rule that charges, a bank-transfer rule that discounts.

PayPal's own terms do not allow surchargingFree and ProNot a technical limit

Nothing stops you setting a fee on PayPal, and it will charge like any other method. PayPal’s user agreement is what prohibits surcharging, in most of the markets it operates in — so the risk is not that the fee fails, it is that charging one breaks your contract with PayPal.

Check your own PayPal agreement before switching a fee on for it. A discount on a cheaper method is the approach their terms do allow.

Mercadopago drops the fee lineFree and ProNo way around it

The Mercadopago gateway has known issues with WooCommerce’s own fee API, and a fee added to those orders may not survive to the total. This is in their integration, not in this plugin, and there is nothing this side can do about it.

A gateway that still shows no fee is usually fixable

Gateways register their payment methods however they like, and some do it in ways nothing can predict. Most of those need a small piece of code on this side.

Write to support@payforpayment.com with the gateway’s name and a link to download it, and I will test it here. It either gets fixed, or it gets added to this page.

Manual orders

Pay-for-order links do not recalculate the orderFree and ProPro handles it

WooCommerce never runs cart fees outside a checkout, so an order raised in the admin or paid through a pay-for-order link carries no fee at all. That is core issue 17794 (opens in a new tab), not something a plugin can fix from the outside.

Pro writes the fee onto those orders itself, and the fee watchdog flags any order that used a fee-configured gateway and still came through without one. On the free version the fee is simply absent.

Checkout and the cart

The cart page shows a fee before the shopper has picked a methodFree and ProWay around it

The cart does not know how someone will pay, so WooCommerce previews the fee for the method it would default to. It recalculates the moment a method is picked at checkout, so the amount charged is always right — but a shopper on the cart page can see a number that then changes.

Order your payment methods so a fee-free one comes first, which works in the free version. Pro can hide the fee on the cart page altogether, and show each method’s fee beside its own name at checkout instead.

The Checkout block in a template part stops updating the totalFree and ProWay around it

On the block checkout the total updates live when the shopper changes payment method. That only fires when the Checkout block sits in the page’s own content. Move it into a template part and the shopper’s choice never reaches the server before they submit, so the totals show whichever method the session last held. Pro corrects the fee to the method actually paid with, just before the charge. On the free version the mismatched line is removed instead, so the order can end up with no fee at all.

Keeping the block in the checkout page itself is the WooCommerce default; this only comes up on themes that have moved it.

Express and wallets

Klarna's one-step express checkout cannot carry a feeFree and ProNo way around it

Klarna Express Checkout in its one-step flow computes the amount with a formula that excludes fee lines. The plugin cannot add a fee that flow will honour, so it does not try.

A wallet sheet on the order-pay page opens on the pre-correction totalPro onlyNone needed

When an express button is used on an order-pay page, the wallet sheet is drawn before the order’s gateway is known, so the total it shows can be missing the fee. The amount actually authorised is corrected first — nobody is undercharged or overcharged — but for that moment the sheet and the order disagree.

Baskets and shipping

One free-shipping package switches the fee off for the whole basketFree and ProNo way around it

“Don’t charge when free shipping is available” scans every shipping package. If an order ships in two packages and only one of them is free, the fee is called off for the order.

This matches how version 2 behaved, and single-package carts — the large majority — cannot tell the difference.

Conditions read the first shipping package onlyPro onlyNo way around it

A rule conditioned on the shipping method looks at the first package. In a split shipment, the second package’s method is not what the condition is testing.

Whether you may charge at all

Your market may not allow the surchargeFree and ProNot a technical limit

The plugin will happily charge a fee that your market or your contract does not allow. Card surcharging is capped or banned outright in parts of the EU, in the UK for consumer cards, in several US states and in Australia, and individual payment providers prohibit it in their own terms whatever the local law says.

Checking what applies where you sell is on you, not on the plugin — the same point the terms make, and the surcharge rules page is the longer version.

Why this page exists

A feature list never tells you where a plugin stops. If one of these is in your way, say so. Support reaches me directly, and the tracker is where the ones worth building end up.

The other side of this is the free version (opens in a new tab): it costs nothing, so the cheapest way to find out whether any of this matters on your store is to install it and look.

Hit something that is not on this page? That is a bug rather than a limit — tell me and it gets fixed, or it gets added here.

Get in touch