Cash on Delivery shown to a buyer 6,000 km away.
You enabled COD for your local market. Native WooCommerce shows it to everyone. Suddenly you're shipping unpaid parcels overseas hoping the customer collects.
Show every payment method only where it belongs.
Hide Cash on Delivery from overseas buyers. Show SEPA only in the EU. Restrict bank transfer to specific postal codes. Target by country, state, city, or ZIP, for every gateway in your shop, including custom ones. $49.99/yr or $149 once.
Out of the box, WooCommerce shows every enabled payment method to every shopper. That's fine if your customers all live in one country and pay one way. The moment you ship internationally, accept Cash on Delivery locally, or list a regional gateway, the checkout starts surfacing methods the customer can't actually use.
You enabled COD for your local market. Native WooCommerce shows it to everyone. Suddenly you're shipping unpaid parcels overseas hoping the customer collects.
SEPA needs an EU bank. Razorpay needs INR. The customer picks the cheapest-looking option, the provider rejects it, and they bounce.
Direct Bank Transfer with an IBAN is fine for EU buyers. For a Canadian shopper it looks like a phishing form, and they leave.
The plugin gives each payment gateway four location signals to filter on: country, state or province, city, and postal code. Plus an include or exclude switch, MaxMind pre-checkout detection, and per-gateway rule sets. Same idea, four levels of precision.
Multi-select dropdown of all 249 countries. Set rules per gateway: only allow these countries, or allow everywhere except these.
Drill into states, provinces, departments, regions. Useful for Cash on Delivery in only the cities you can reach with same-day couriers.
Mix exact codes, wildcards, and numeric ranges in one rule. Works on numeric ZIPs (US, FR, DE) and alphanumeric postcodes (UK, CA, NL).
Comma-separated list, case-insensitive. Lets you offer same-day delivery COD only in cities your driver can actually reach today.
If WooCommerce's MaxMind key is set, the plugin reads the visitor's country at page load. Cart and checkout pre-filter accordingly. Billing address takes over once typed.
Per gateway, pick the easier list to write. Include for "small set of allowed countries". Exclude for "everywhere except a few".
Hooks WooCommerce's gateway registry. If a gateway is registered, location filters appear in its settings. No hardcoded vendor list.
Upload the .zip from Plugins → Add New, then activate. No setup wizard.
WooCommerce → Settings → Payments → click the gateway you want to restrict.
Country, state, city, or postal code. Choose Include or Exclude, type or paste your list, save.
Open checkout in an incognito window, change the billing country, watch the gateway list react.
StoreApps $79/yr · no lifetime |
Extendons $69/yr · no lifetime |
WP Desk $59/yr · $199/yr (25 sites) |
WPFactory $49.99/yr · $149 once |
|
|---|---|---|---|---|
| core: location targeting | ||||
| Show or hide by country | ✓ | ✓ | via shipping method | ✓ |
| State / province targeting | ✓ | ✓ | ✕ | ✓ |
| City targeting | not specified | not specified | ✕ | ✓ |
| Postal / ZIP code targeting | ✓ | ✓ | ✕ | ✓ |
| Postal code wildcards & ranges | ✕ | ✕ | ✕ | ✓ |
| scope & logic | ||||
| Include and Exclude modes | include only | ✓ | ✕ | ✓ |
| Per-gateway rule sets | ✓ | ✓ | ✓ | ✓ |
| MaxMind geolocation pre-checkout | ✕ | IP-based, basic | ✕ | ✓ |
| Block-based checkout compatible | not specified | ✓ | ✓ | ✓ |
| Customize "no methods" notice | ✕ | ✕ | ✕ | ✓ |
| HPOS-ready | not specified | ✓ | ✓ | ✓ |
| pricing & ownership | ||||
| Free version on .org | ✕ | ✕ | ✕ | ✓ |
| Lifetime tier | ✕ | ✕ | ✕ yearly only | ✓ $149 unlimited sites |
| Multi-store licensing | not specified | not specified | 25 sites @ $199/yr | ✓ unlimited sites |
| Entry-tier price | $79/yr | $69/yr | $59/yr | $49.99/yr |
| 10-year cost | ~$790 | ~$690 | ~$590 (1 site) | $149 once |
| 50+ plugins (All Access) | ✕ | ✕ | ✕ | ✓ $499 |
|
Ready to filter every gateway by location? ↓
Jump to pricing
|
||||
A Berlin furniture maker offers Cash on Delivery, but only same-day inside the Berlin ring. They restrict the COD gateway to ZIP prefixes 10*, 12*, 13*, 14*. Outside those codes the option vanishes from checkout and the buyer sees Stripe or PayPal instead.
Failed COD deliveries dropped from 8-10/week to 0. The driver stopped doing 90-minute detours outside the ring.
A SaaS shop with EU and US buyers offers SEPA Direct Debit for cheap recurring charges. They include only the 27 EU countries on the SEPA gateway, and exclude the same list from a US-only ACH gateway. PayPal and Stripe stay visible everywhere as fallbacks.
SEPA mandate rejections at the bank dropped to zero. The "your account does not support SEPA" support thread closed for good.
A digital goods store sells in 60 countries. They added Razorpay because Indian buyers prefer UPI, but native WC was showing it to everyone (and rejecting non-INR transactions). The plugin restricts Razorpay to country IN only. Same logic applied to Mercado Pago for Latin America.
Failed-checkout rate on regional gateways dropped from 14% to ~0. Support tickets about "your Indian payment thing isn't working" stopped overnight.
"Does exactly what is advertised. Had an issue with uncommon gateway not appearing but tech support fixed it very quickly."see review →
"Support went above and beyond. They didn't just answer my question, they shipped a small tweak the same week. That kind of responsiveness is rare."see reviews →
"Bought into WPFactory for one plugin, ended up using four. Quality is consistent across the suite and the team actually reads bug reports."see reviews →
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 the standard available_payment_gateways filter. No extra database tables, no custom REST endpoints, no recurring queries on the storefront.
Every filter is documented. ZIP wildcard syntax, MaxMind setup, billing-vs-shipping-address logic, classic-vs-block checkout differences. All in plain language.
See LexGear's review on WordPress.org: an uncommon third-party gateway needed an integration tweak, support shipped it during the trial. That's the pattern.
14-day refund on yearly and lifetime, 30 days on All Access, no questions asked. If a custom gateway doesn't filter the way you'd 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.7.3 shipped recently. Tested against the latest WooCommerce within days of every release. HPOS-ready, PHP 8.3 compatible, Block-checkout supported.
Compatible with WooCommerce Subscriptions, WPML, Polylang, PDF Invoices & Packing Slips. Any plugin that registers a payment gateway gets location rules automatically.
You don't need to know what an IP-to-country lookup is. Tick the countries that should see a gateway, save, done. Wildcard and range syntax is documented with copy-paste examples.
This is what you see inside WordPress once the plugin is activated.
Yearly licenses renew automatically; auto-renew can be turned off in your account. 14-day refund on yearly and lifetime, 30 days on All Access. Lifetime pays for itself at year 3, then never bills you again. All Access pays for itself with any 2nd plugin you'd ever use.
Buy once. Owns itself by year 3 versus renewing yearly. Use on every site you own.
This plugin + 49 others, lifetime updates, unlimited sites - for $300 more than Lifetime alone.
If yours isn't here, our support replies fast. Or read the docs.
Popular guides
10*, SW1*), or a numeric range (e.g. 10000...19999). The plugin matches the rule against the customer's billing or shipping ZIP at checkout.available_payment_gateways filter, which both the classic and block checkouts use. Gateways update reactively as the customer changes country or postal code in the block checkout.Restrict any payment method by country, state, city, or postal code. Use MaxMind to pre-filter before a customer even types an address. Include or exclude per gateway. Works with Stripe, PayPal, COD, SEPA, Razorpay, custom. 700+ stores already running it. 14-day refund if it's not for you.
700+ stores · 4.8★ across 5 reviews · WordPress.org plugin · 14-day refund