30%
OFFLimited time
Make sure your store is healthy and ready forGet your store ready for Black Friday
Catalog Health Scanner for WooCommerce
Use code at checkout
Get 30% Off

WooCommerce Conditional Payment Methods by Location

WooCommerce Plugin
4.8
5 Reviews
v1.8.0
Updated 1 month ago
700+
Stores Live
the right gateways, for the right shoppers ↓

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.

14-day refund
MaxMind geolocation
HPOS & Blocks ready
three checkout pains this fixes ↓

One gateway list. Wrong for half your customers.

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.

problem · 1

Cash on Delivery shown to a buyer 6,000 km away.

🇩🇪 Berlin order💵 COD pickeddelivered ✓
🇧🇷 São Paulo order💵 COD pickedrefused on arrival ✕
🇦🇺 Sydney order💵 COD pickedreturn shipping eats margin ✕

You enabled COD for your local market. Native WooCommerce shows it to everyone. Suddenly you're shipping unpaid parcels overseas hoping the customer collects.

problem · 2

SEPA shown to a buyer in Tokyo. Decline.

checkout · 🇯🇵 Tokyo shopper
🇪🇺 SEPA Direct Debit
🇮🇳 Razorpay (INR only)
💳 Stripe
→ gateway rejects · sale lost

SEPA needs an EU bank. Razorpay needs INR. The customer picks the cheapest-looking option, the provider rejects it, and they bounce.

problem · 3

"Bank transfer to our IBAN" - useless if you're not in Europe.

🇺🇸 customer support email"is this a real bank?"
🇨🇦 cart abandonpicked Direct Bank, gave up
🇸🇬 30-day pending orderwire never arrives, you cancel
Direct Bank Transfer is great for locals · friction for everyone else

Direct Bank Transfer with an IBAN is fine for EU buyers. For a Canadian shopper it looks like a phishing form, and they leave.

eight controls you'll use ↓

Every gateway. Every location. Every checkout.

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.

country · whitelist or blacklist

Pick countries. Done.

Multi-select dropdown of all 249 countries. Set rules per gateway: only allow these countries, or allow everywhere except these.

state · narrow it down

State or province, inside any country.

Drill into states, provinces, departments, regions. Useful for Cash on Delivery in only the cities you can reach with same-day couriers.

postcode · wildcards + ranges

Postal codes, the way you actually write them.

Mix exact codes, wildcards, and numeric ranges in one rule. Works on numeric ZIPs (US, FR, DE) and alphanumeric postcodes (UK, CA, NL).

city · the last mile

Right down to the city.

Comma-separated list, case-insensitive. Lets you offer same-day delivery COD only in cities your driver can actually reach today.

geo · before the address

Filter before they even type an address.

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.

mode · include or exclude

Two ways to say it. Pick what reads cleanest.

Per gateway, pick the easier list to write. Include for "small set of allowed countries". Exclude for "everywhere except a few".

scope · one rule set per gateway

Different rules for different gateways.

gateways · all of them

Stripe, PayPal, COD, Razorpay, custom.

Hooks WooCommerce's gateway registry. If a gateway is registered, location filters appear in its settings. No hardcoded vendor list.

setup

Four steps. Live in under 10 minutes.

i · install

Activate the plugin

Upload the .zip from Plugins → Add New, then activate. No setup wizard.

Payment Gateways by Location Active
ii · pick a gateway

Open any payment method's settings

WooCommerce → Settings → Payments → click the gateway you want to restrict.

gateway COD
iii · add a rule

Pick a location signal

Country, state, city, or postal code. Choose Include or Exclude, type or paste your list, save.

CountryDE, AT ✓
StateBY, BW ✓
ZIP10*, 12* ✓
iv · test

Test at checkout

Open checkout in an incognito window, change the billing country, watch the gateway list react.

how we stack up

Cheaper. More precise. Lifetime tier.

Prices verified on each vendor's pricing page. Site-licensing details from each vendor's docs; "not specified" where the vendor doesn't publish a number.
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 targetingnot specifiednot specified✕
Postal / ZIP code targeting✓✓✕
Postal code wildcards & ranges✕✕✕
scope & logic
Include and Exclude modesinclude only✓✕
Per-gateway rule sets✓✓✓
MaxMind geolocation pre-checkout✕IP-based, basic✕
Block-based checkout compatiblenot specified✓✓
Customize "no methods" notice✕✕✕
HPOS-readynot specified✓✓
pricing & ownership
Free version on .org✕✕✕
Lifetime tier✕✕✕ yearly only
Multi-store licensingnot specifiednot specified25 sites @ $199/yr
Entry-tier price$79/yr$69/yr$59/yr
10-year cost~$790~$690~$590 (1 site)
50+ plugins (All Access)✕✕✕
Ready to filter every gateway by location? ↓ Jump to pricing
scroll →
three real stores ↓

Three businesses. Three location strategies.

local · COD by postcode

German furniture shop · "COD only where our courier goes."

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.

CountryDE
ZIP ruleCOD include · 10*, 12*, 13*, 14*
FallbackStripe + PayPal show everywhere else in DE

Failed COD deliveries dropped from 8-10/week to 0. The driver stopped doing 90-minute detours outside the ring.

global · Razorpay-gated

Global store · "Razorpay shows up in India. Nowhere else."

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.

Razorpayinclude · IN only
Mercado Pagoinclude · AR, BR, MX, CL, CO
Stripe / PayPalshown globally as default

Failed-checkout rate on regional gateways dropped from 14% to ~0. Support tickets about "your Indian payment thing isn't working" stopped overnight.

verified reviews

From stores running this right now.

Using the plugin? Leave a review.

"Does exactly what is advertised. Had an issue with uncommon gateway not appearing but tech support fixed it very quickly."
L
LexGear
WordPress.org · verified review
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."
M
Marcus
WPFactory customer · verified buyer
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."
P
Priya
All Access customer · verified buyer
see reviews →
tested with

Works with every payment gateway in your shop.

Platform

WP 5.0+WP 6.9WC 4.0+WC 10.7PHP 7.4+PHP 8.3HPOS-readyBlocks

Payment gateways

StripePayPalSquareMollieAuthorize.netRazorpayMercado PagoSEPABACSChequeCODCustom

Location signals

CountryStateCityPostal codeZIP wildcardZIP rangeMaxMind GeoIP

Plugins & checkout

Classic checkoutBlock checkoutWPMLPolylangWC SubscriptionsPDF Invoices
why this plugin

Built for stores where checkout is geography.

Every WPFactory plugin ships with the same eight guarantees. Here's what running this one looks like in practice.

Clean code, reviewed

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.

Docs & specs, written

Every filter is documented. ZIP wildcard syntax, MaxMind setup, billing-vs-shipping-address logic, classic-vs-block checkout differences. All in plain language.

Support that ships

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 money-back

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.

Bundle savings, real

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.

Updates, regularly

v1.7.3 shipped recently. Tested against the latest WooCommerce within days of every release. HPOS-ready, PHP 8.3 compatible, Block-checkout supported.

Plays well with others

Compatible with WooCommerce Subscriptions, WPML, Polylang, PDF Invoices & Packing Slips. Any plugin that registers a payment gateway gets location rules automatically.

Designed for store owners

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.

7 stores joined this week·2 in the last 24h
if you'll keep this plugin a while ↓

Three tiers. Pick once.

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.

GATEWAYS BY LOCATION PRO
$149 once

Buy once. Owns itself by year 3 versus renewing yearly. Use on every site you own.

  • Unlimited sites
  • Lifetime updates
  • Priority email support
  • 14-day refund · auto-renew can be turned off in your account
  • GPL-licensed · use on client sites
Buy Lifetime - $149 once
★ SMART MOVE ALL ACCESS · LIFETIME
$999$499oncesave 50%

This plugin + 49 others, lifetime updates, unlimited sites - for $300 more than Lifetime alone.

! Buying any 3 single lifetimes?
$597 → $499 / 50+
  • 50+ plugins, lifetime updates (+9 from WooBeWoo)
  • Unlimited sites · every plugin
  • Future plugins included free, forever
  • Lifetime priority support
  • 30-day refund · pays back at 2nd plugin you'd use
Explore All Access
How does the plugin decide which gateway shows for a customer?
It reads the customer's billing or shipping address (whichever the checkout uses) and matches it against the rules you set per gateway. You can target by country, state or province, city, or postal code. If MaxMind geolocation is enabled in WooCommerce, the plugin also uses the visitor's detected country before they fill in an address.
What location signals can I use as conditions?
Countries, states or provinces, cities, and postal codes. Each gateway gets its own rule set, and you can combine signals (e.g. allow Cash on Delivery only in Germany and only for postal codes starting with 10 or 12).
Does it work with the standard WooCommerce gateways?
Yes. Cash on Delivery, Direct Bank Transfer, Cheque, and PayPal Standard get location rules out of the box. Stripe, PayPal Payments, Square, Mollie, Razorpay, Authorize.net, and any custom in-house gateway also get them because the plugin hooks into WooCommerce's gateway registry, not a hardcoded list.
Show or hide - which way do rules work?
Both. For each gateway you choose either an include list (only show in these locations) or an exclude list (show everywhere except these locations). Mix and match per gateway.
Does it support MaxMind geolocation?
Yes. If you've added a MaxMind license key in WooCommerce's general settings, the plugin uses the detected country before the customer types an address. Once they fill in the billing or shipping country, that takes priority.
Can I target by postal code range, not just exact code?
Yes. Use a single postal code, a comma-separated list, a wildcard (e.g. 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.
What if no payment method matches the customer's location?
WooCommerce displays its standard "no payment methods available" notice. You can customize the message via a filter so customers see something helpful (e.g. "For your country, please contact us for a wire transfer").
Will this slow my checkout?
No. Rules are evaluated when the gateway list is rendered (one pass at checkout). No extra database queries, no external API calls. Frontend impact is effectively zero.
Does it work with the Block-based checkout?
Yes. The plugin hooks WooCommerce's 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.
Is it HPOS-compatible?
Yes. HPOS (High-Performance Order Storage) is declared compatible. Works with both the new high-performance order tables and legacy postmeta-based storage.
How is this different from StoreApps, Extendons, or WP Desk?
StoreApps' Conditional Payment Methods ($79/yr, no lifetime) and Extendons' Advance Conditional Payment Methods ($69/yr, no lifetime) both cover location targeting but renew yearly forever. WP Desk's Active Payments ($59/yr standalone, or $199/yr 25-site bundle) leans toward shipping-method-based logic and fees. WPFactory is $49.99/yr or $199 once, includes country / state / city / ZIP wildcards and ranges, MaxMind, and is the only one with a real lifetime tier for unlimited sites and a free version on WordPress.org.
What is the refund policy?
14 days on the yearly and lifetime plans; 30 days on All Access. No questions asked. The yearly plan also includes an upgrade credit toward Lifetime or All Access. Lifetime never renews. Yearly auto-renew can be turned off in your account.
Is there a free version?
Yes. The free version on WordPress.org covers country-based show/hide for any WooCommerce gateway. The Pro version adds state, city, and postal-code targeting, MaxMind geolocation pre-checkout, wildcard and range matching, per-gateway include and exclude lists, and priority support.
if you've scrolled this far ↓

Stop showing every gateway to every shopper. Show the right one, where it works.

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