Cash on Delivery on a next-day courier.
Native WooCommerce shows every payment option on every shipping method. Pay-on-delivery on overnight courier means a driver paid to chase cash on a $12 order, or worse, you eat the loss when nobody's home.
Show the right payment for the shipping picked.
Hide Cash on Delivery on Express. Show wire transfer only on local pickup. Restrict SEPA to EU zones. The plugin maps every WooCommerce payment gateway to its allowed shipping methods, by method or by zone-method instance. $49.99/yr or $149 once.
excluded for Expressmatch flat ratepickup · DACHOut of the box, WooCommerce shows every active payment gateway no matter which shipping method the customer picked. The moment your store offers next-day couriers, local pickup, or zone-specific shipping, you need to pair each payment method with the shipping it actually fits.
Native WooCommerce shows every payment option on every shipping method. Pay-on-delivery on overnight courier means a driver paid to chase cash on a $12 order, or worse, you eat the loss when nobody's home.
Bank transfer clears in 5-7 days. A same-day courier needs payment confirmed in minutes. Show both and customers pick the slow one because it has no card fee, then your fulfillment desk has 80 orders sitting "awaiting payment" while couriers wait.
Native WooCommerce caches the COD fee from the moment the page loaded. Customer switches shipping, the fee should change too. It doesn't. They get charged the old amount, notice on the receipt, open a ticket. Hours of support per week, easy to fix.
The plugin handles four jobs: rule each gateway with an Include or Exclude list, scope it by method or by zone-method instance, refresh COD-style fees when shipping changes, and support every gateway WooCommerce knows about, including custom and regional ones.
Every WooCommerce-registered gateway shows two new fields: Include or Exclude, plus the shipping list. Including custom in-house gateways.
Most single-region stores use Method. Stores with regional rules (SEPA on EU, ACH on US, COD on local) use Instance.
Instance mode means a method's name is no longer enough. The plugin uses the zone-method ID so SEPA on EU is a different rule from SEPA on rest-of-world.
Hooks WooCommerce's gateway registry. If a gateway is registered, the rule fields appear. No hardcoded vendor list, no waiting for plugin updates when a new gateway ships.
No extra requests added. WooCommerce already fires an AJAX call on shipping change; the plugin reads the new method and updates the gateway list in the same response.
The plugin doesn't care about the vendor. Whatever gateway your store registered with WooCommerce, the shipping-rule fields appear in its settings.
Upload the .zip from Plugins → Add New, then activate.
Method mode applies a rule to a shipping method wherever it appears. Instance mode is per zone-method, so Flat rate on EU differs from Flat rate on US. Most stores start with Method.
WooCommerce → Settings → Payments → click a gateway. Two new fields: rule type (Include or Exclude) and the shipping list. Save.
Add a cheap item, switch between every shipping method, watch the gateway list update without a page reload. Done.
WooCommerce native · none |
Booster Elite free + Elite · pricing not specified |
Business Bloomer · Disable Payments by Shipping $29 once · unlimited sites |
WPFactory $49.99/yr · $149 once |
|
|---|---|---|---|---|
| core: gateway rules by shipping | ||||
| Show / hide gateway by shipping method | ✕ | ✓ | ✓ | ✓ |
| Include AND Exclude modes per gateway | ✕ | enable only | disable only | ✓ |
| Per zone-method instance rules | ✕ | ✓ | ✓ | ✓ |
| Custom & in-house gateways | - | ✓ | standard only | ✓ |
| checkout behavior | ||||
| Live AJAX refresh on shipping change | ✕ | ✓ | not specified | ✓ |
| Auto-recalculate COD fee on shipping switch | ✕ | not specified | ✕ | ✓ |
| Classic checkout supported | - | ✓ | ✓ | ✓ |
| WooCommerce Cart/Checkout Blocks | - | not specified | not specified | ✓ |
| platform | ||||
| HPOS-ready | - | ✓ | not specified | ✓ |
| Filters & hooks for custom rules | ✕ | ✓ | not specified | ✓ |
| Multilingual (WPML / Polylang) safe | - | ✓ | not specified | ✓ |
| pricing & ownership | ||||
| Free version on .org | - | ✓ | ✕ | ✓ |
| Lifetime tier | - | ✕ | ✓ $29 unlimited sites | ✓ $149 unlimited sites |
| Multi-store licensing | - | per site · Elite tier | ✓ unlimited sites | ✓ unlimited sites |
| Refund window | - | not specified | 10-day | ✓ 14-day |
| 10-year cost | $0 | not specified | $29 | $149 |
| 50+ plugins (All Access) | - | ✕ | ✕ | ✓ $499 |
|
Ready to pair every gateway with its shipping? ↓
Jump to pricing
|
||||
A regional grocery store offers same-day local courier, next-day national, and weekend pickup. Cash on Delivery worked for local routes but kept failing on next-day national: nobody home, driver returns the cash. The plugin excludes COD from next-day, leaves it on local and pickup.
Failed-delivery rate on COD orders dropped from 11% to under 2%. Drivers stopped chasing cash on routes they shouldn't have been on in the first place.
A SaaS-style downloads store sells across the EU, US, and rest-of-world. SEPA Direct Debit only works on EU bank accounts and ACH only works on US ones; offering them globally meant 30% of bank-debit attempts failed at the provider. Instance mode lets each gateway pair with its zone-method.
Bank-debit failure rate dropped from 30% to under 1%. Support stopped fielding "why was my debit declined" tickets from non-EU customers picking SEPA because it looked cheaper.
A wholesaler offers Net 30 purchase orders to known account holders, but only when they collect in person (so the account manager can sign off). Walk-up shipping orders had to prepay. Setting the PO gateway to Include only the Pickup · Account zone-method made the rule one click.
PO abuse from non-account customers dropped to zero. Account managers stopped manually voiding orders that shouldn't have used a PO in the first place.
Using the plugin? Leave a review on WordPress.org.
"Exactly what we needed to stop offering Cash on Delivery on overnight shipping. Easy setup, fast support."see review →
"Instance mode is what sold it. SEPA only on our EU zones, ACH only on US. No more failed bank debits."see review →
"Configured purchase-order gating in five minutes. Wholesale customers stopped abusing PO on walk-up orders. Worth the price."see review →
Every WPFactory plugin ships with the same eight guarantees. Here's what running this one looks like in practice.
Hooks into WooCommerce's payment-gateway registry and shipping-method registry instead of hardcoding vendor names. Reads the cart's chosen shipping on the existing AJAX cycle. No extra database tables, no background jobs.
Every filter is documented (alg_wc_pgbs_available_gateways, alg_wc_pgbs_rule_match, plus instance- and method-mode filters). Method vs Instance mode explained with an example per side.
Email support replies fast (no auto-responder hand-wave). Real bug reports become releases within days, not quarters. Feature requests reviewed and shipped when they fit.
14-day refund on yearly and lifetime, 30 days on All Access, no questions asked. If a custom gateway doesn't match your shipping zones the way you hoped, support helps; if it still doesn't fit, you walk away whole.
All Access is $499 once for all 50+ plugins, lifetime, unlimited sites, and it includes every plugin we release later. Three lifetime licenses at $199 already cost $597, so the bundle usually wins by your third plugin.
v1.5.2 shipped recently. Tested against the latest WooCommerce within days of every release. HPOS-ready, PHP 8.3 compatible. Tracks WC's checkout-blocks roadmap so the rules apply on both classic and the new blocks.
Compatible with WooCommerce Subscriptions, WPML, Polylang, table-rate shipping plugins, and most custom carrier integrations. Filters exposed for every rule evaluation step so custom logic slots in cleanly.
You don't need to think in terms of zone-method instance IDs. Pick a gateway, pick Include or Exclude, tick the shipping methods from a checklist, save. The plugin handles the rest on every checkout.
This is what you see inside WordPress once the plugin is activated.
14-day refund on yearly and lifetime, 30 days on All Access. Lifetime pays for itself by year 3. All Access pays for itself with any 2nd plugin you'd ever use. Yearly auto-renew can be turned off in your account.
Buy once. Owns itself by year 3. Use on every site you own.
This plugin + 49 others, lifetime updates, unlimited sites - for $300 more than Lifetime alone.
Include or exclude any gateway by shipping method or zone-method instance. Hide COD on Express. Show wire transfer only on local pickup. Restrict SEPA to EU. Auto-recalc fees. Block and classic checkouts. 800+ stores already running it. 14-day refund if it's not for you.
800+ stores · 5★ across 3 reviews · WordPress.org plugin · 14-day refund