ConicPlex

Start Your Project

Illustration of a checkout receipt with a highlighted surcharge fee line, next to a payment card and a stack of coins, representing WooCommerce cash on delivery and card payment fee plugins

On this Page

How to Charge an Extra Fee for Cash on Delivery or Card Payments in WooCommerce (3 Plugins Compared)

WooCommerce has no built-in way to charge a different amount by payment method. Here are 3 real plugins for a COD or card surcharge, compared on price, requirements, and limits.

Sajil Memon

October 27, 2026

WooCommerce has no built-in setting for charging a different amount based on payment method. If Cash on Delivery costs you a courier collection fee, or card processing eats a percentage of every sale, the only way to pass that cost on is a plugin that hooks into WooCommerce’s cart fee system. This post compares three real options: Payment Gateway Based Fees and Discounts for WooCommerce, Pay for Payment, and PI Conditional Cart Fee. For a flat or percentage COD or card surcharge with nothing else attached, Pay for Payment is the cleanest fit. If the fee needs to depend on more than the payment method alone, PI Conditional Cart Fee’s free tier goes further, with payment method itself locked to its Pro version.

Plugin Best for Price Last updated
Payment Gateway Based Fees and Discounts for WooCommerce A no-code COD or BACS fee with min/max caps and a fee note on the product page Free, Pro from $49/year September 10, 2026
Pay for Payment A fee or discount on any gateway, including React-based ones like Stripe and WooPayments Free, Pro from $39/year October 23, 2026
PI Conditional Cart Fee / Extra Charge Rule Fees based on cart weight, category, country, or postcode, not just payment method Free, Pro from $34/year October 26, 2026

Payment Gateway Based Fees and Discounts for WooCommerce

  • Price: Free, Pro from $49/year
  • Requires: WordPress 4.4+, PHP 7.4+
  • Last updated: September 10, 2026

Payment Gateway Based Fees and Discounts for WooCommerce, built by Tyche Softwares, is purpose-built around exactly this one job: a fixed or percentage fee (or discount) tied to the payment gateway a customer picks. It covers WooCommerce’s own built-in gateways, Cash on Delivery, Direct Bank Transfer, and Cheque Payments, and it also reads gateways added by other WooCommerce extensions, so a PayPal or Stripe add-on gets the same treatment without extra setup. One detail worth knowing before you commit to a different plugin: the Lite version can also show the fee on the product page, before the customer ever reaches checkout, which cuts down on “why did my total just change” support tickets.

Setup happens under WooCommerce > Settings > Payment Gateway Based Fees and Discounts after activation. From there you enable the fee for a specific gateway, choose fixed amount or percentage, set a custom label for the checkout line item, and optionally cap it with a minimum and maximum. You can also decide whether shipping gets folded into the percentage calculation and whether the fee itself is taxable, both configured per gateway rather than store-wide.

The honest limit is in what the free Lite version will not do. Every condition beyond the gateway itself, charging differently by product, category, customer country or state, or shipping method, sits behind the Pro upgrade, which starts at $49/year for the Starter tier. If your rule really is just “COD costs X more,” Lite covers it. The moment you want that fee to change by region, you are paying.

Pay for Payment

  • Price: Free, Pro from $39/year
  • Requires: WordPress 6.2+, PHP 8.0+
  • Last updated: October 23, 2026

Pay for Payment is the newest of the three and it shows in how it is built. Its differentiator is a single settings screen, WooCommerce > Settings > Pay for payment, that lists every payment method your store has, whether enabled or not, and lets you configure a fee or discount from that one list. That matters because gateways like Stripe, WooPayments, and Klarna render their own settings as React apps with no room for a third-party plugin to inject extra fields. Pay for Payment sidesteps that entirely by not depending on the gateway’s own settings form, which is a real, specific technical reason to prefer it over a plugin that patches a tab onto each gateway individually.

Each method’s fee can be a fixed amount, a percentage, or both combined (“2.5% + 0.50” is a supported pattern), with minimum and maximum caps on the total, and the option to flip the amount negative to turn it into a discount for a cheaper payment method instead. The percentage can be calculated against the cart subtotal alone or against subtotal plus shipping, coupons, and tax, and the fee can carry its own tax class. It has basic support for WooCommerce’s block-based checkout, meaning the fee calculates and the order total updates live when a shopper switches payment method, though the plugin’s own FAQ flags one known gap worth reading before you rely on it.

Two limitations are worth stating plainly. PayPal’s Acceptable Use Policy prohibits surcharging PayPal payments, so the plugin’s own documentation recommends against it there and points to a discount-on-other-methods workaround instead. And in the free version, the fee only applies at the live checkout, not on the “Pay for order” page or on orders created manually in wp-admin, a known gap in WooCommerce core itself rather than something this plugin failed to build. Pro removes both restrictions, adds conditions like cart total and country, and several fee tiers per method. The stricter requirements (WordPress 6.2, PHP 8.0) are also worth checking against your hosting before you activate it.

PI Conditional Cart Fee / Extra Charge Rule for WooCommerce

  • Price: Free, Pro from $34/year
  • Requires: WordPress 5.3+, PHP requirement not specified
  • Last updated: October 26, 2026

PI Conditional Cart Fee, from PI Web Solution, is a different kind of tool than the first two. It is not built around payment method specifically, it is a general cart-fee rule engine, and the free version’s conditions run on cart subtotal, product, quantity, customer, user role, shipping zone, weight, coupon used, and even GeoIP-based country detection for logged-out visitors. That range is the real differentiator here: a store that wants to charge more for heavy items shipped to a specific zone, on top of whatever payment method fee it also runs, needs this kind of rule engine, not a gateway-fee plugin.

To set a rule, you create a new fee, give it a name, add a rule type such as cart subtotal range, product, or country, and set the matching values, then choose whether the amount is fixed or a percentage and whether it is taxable. Fees can be marked optional, so the customer sees a checkbox at checkout rather than an automatic charge, and a rule can be scheduled to a date range if the fee only applies during a promotion or a seasonal surcharge window.

Here is the limitation that matters most for this specific comparison: triggering a fee based on which payment method the customer selected is a Pro-only condition in this plugin, priced from $34/year. The free version’s rules run on cart contents, the customer, and location, but not on the gateway itself. If “charge more for COD” is your entire rule with nothing else attached, this is the wrong free pick. It earns its place in this comparison when that fee also needs to depend on cart weight, product category, or postcode at the same time as payment method, which is where the other two plugins simply have no answer.

How to Pick

  1. If you need a flat or percentage COD or card fee and nothing else, use Pay for Payment. It handles every gateway from one screen and works with React-based gateway settings that other plugins can’t touch.
  2. If your host is still on PHP 7.x, use Payment Gateway Based Fees and Discounts for WooCommerce instead; it only requires PHP 7.4, against Pay for Payment’s PHP 8.0 floor.
  3. If the fee has to change by cart weight, shipping zone, postcode, or customer country, not payment method alone, start with PI Conditional Cart Fee’s free tier, and add Pro only once payment method needs to be one of the stacked conditions.
  4. If your checkout runs on WooCommerce’s block-based checkout, test on a staging cart first. Pay for Payment documents a known gap in its own FAQ; the other two don’t document block-checkout behavior at all in their readmes, which is a gap worth closing before launch, not after.
  5. If the rule your store actually needs doesn’t fit any of these (loyalty-tier pricing, a fee that depends on warehouse distance, a surcharge synced from an external ERP), that’s a custom WooCommerce checkout hook rather than a settings screen. Our WooCommerce development team builds that directly on woocommerce_cart_calculate_fees rather than forcing a generic plugin to do something it wasn’t built for.

FAQ

Can I charge a fee only for Cash on Delivery and not other payment methods?
Yes, with Payment Gateway Based Fees and Discounts or Pay for Payment, both let you enable a fee per gateway directly in the free version. PI Conditional Cart Fee can do this too, but only in its Pro version. Its free tier’s conditions don’t include payment method at all.

Is it legal to add a surcharge for card payments?
It depends on where your store and customers are. Several countries and some US states restrict or ban surcharging card payments, and PayPal’s own Acceptable Use Policy separately prohibits surcharging PayPal transactions specifically. Check your local payment regulations before enabling a card surcharge, and consider a discount-for-cheaper-methods approach instead where surcharging isn’t allowed.

Will the fee show up if I create an order manually from wp-admin?
Not with the free version of Pay for Payment, which documents that cart fees don’t apply on the “Pay for order” page or on orders created in wp-admin, a WooCommerce core limitation rather than a plugin bug. Its Pro version covers both cases. The other two plugins don’t document this edge case explicitly, so test a manually created order before relying on it.

Do these plugins work with the WooCommerce block-based checkout?
Pay for Payment documents basic block checkout support, the fee calculates and the total updates when a shopper switches payment method, with one known gap detailed in its FAQ. Payment Gateway Based Fees and Discounts and PI Conditional Cart Fee don’t explicitly document their block checkout behavior in their readmes, so verify on a staging cart with blocks enabled before you launch.

Can I offer a discount instead of a fee for a cheaper payment method?
Yes, both Pay for Payment and Payment Gateway Based Fees and Discounts support negative amounts, which turn the charge into a discount, useful for rewarding customers who pick Direct Bank Transfer or another lower-cost method. PI Conditional Cart Fee is built around extra charges rather than discounts, and its documentation doesn’t describe a negative-amount option.

A payment-method fee is usually the first checkout customization a growing WooCommerce store needs, but it’s rarely the last. If you’re also working on the fields customers fill in at checkout, we’ve covered adding an EU VAT number field and adding pickup time slots to checkout in separate comparisons. If the goal is closer to limiting when checkout is even available, our guide to disabling checkout outside business hours covers that specific case. For anything a plugin genuinely can’t do, our plugin development team builds the custom version instead.

Sources

Sajil Memon is a co-founder of ConicPlex and a Senior Full Stack Developer focused on backend work: Node.js, PHP, APIs, and the infrastructure decisions that determine whether a system holds up under real traffic. He’s spent years on the side of a project that doesn’t get demoed, the part that has to keep working after launch. He writes here about the technical tradeoffs in backend architecture, deployment, and data handling that only become obvious once something breaks in production.

Leave a Reply

Your email address will not be published. Required fields are marked *

Keep reading

Software

A laptop showing a WordPress blog dashboard next to a phone with a wedding photo, on a desk at night, representing an AI-automated blog and image generation workflow

Does AI-Generated Blog Content Hurt Your SEO? What We Learned Building an AI Image Tool

AI-generated content does not automatically hurt your SEO, but it can if it is generic or published without review. Here…

Husen Memon

October 26, 2026

News & Updates

A laptop with a blank glowing screen on a desk at night beside a stack of ordinary document folders, with one envelope glowing faintly amber among them

Malicious AGENTS.md Files Are Tricking Codex and Claude Code into Installing Malware

A booby-trapped AGENTS.md file tricked Codex and Claude Code into installing malware in security tests. Here’s what happened and how…

Sameer Malek

October 26, 2026

Plugins

Illustration of a gold key with license tag shapes representing WooCommerce software license key plugins

How to Sell Software License Keys in WooCommerce (4 Plugins Compared)

Four real WooCommerce plugins for selling software license keys and serial codes, compared on price, setup, and honest tradeoffs….

Sajil Memon

October 26, 2026

WhatsApp
Husen Memon
Husen Memon
Typically replies instant