Stripe Express Checkout by Country
Restrict the Stripe WooCommerce Express Checkout to specific countries
by Paul Faulkner · github.com/headwalluk/woo-stripe-express-by-country · website
Install
The author publishes release zips, so WP-CLI can install straight from GitHub:
wp plugin install https://github.com/headwalluk/woo-stripe-express-by-country/releases/download/v1.0.0/woo-stripe-express-by-country.zipReadme
Stripe Express Checkout by Country
Make the WooCommerce Stripe Express Checkout (Apple Pay / Google Pay / the Express Checkout Element) conditional on the customer's country.
By default the official WooCommerce Stripe Gateway offers express checkout to everyone, everywhere. This plugin restricts those wallet buttons to a set of countries you choose, in one of two modes:
- Allow-list — only show express checkout for the selected countries.
- Block-list — show express checkout for everyone except the selected countries.
Who it's for
Stores that need to steer certain customers into the full WooCommerce checkout rather than the express wallet flow — for example, UK sellers who must keep VAT-exemption-eligible customers (UK, Jersey, Guernsey) in the standard checkout, where the exemption can be applied. Express checkout stays available to everyone else, so conversions elsewhere are unaffected.
How it works
- Display gate — hides the express-checkout buttons on cart, checkout, and product pages for customers whose country isn't permitted. This is the primary mechanism and is always on.
- Optional server-side block — off by default; when enabled, also rejects a disallowed express order at checkout (classic and block / Store API flows).
The customer's country is read from their shipping address (falling back to billing) via WooCommerce's customer object, so your WooCommerce geolocation settings apply.
Requirements
- WordPress 6.0+
- WooCommerce 9.0+
- WooCommerce Stripe Gateway (provides express checkout and its display filters)
- PHP 8.0+
Installation
- Ensure WooCommerce and the WooCommerce Stripe Gateway are installed and active.
- Upload the plugin to
/wp-content/plugins/and activate it. - Go to WooCommerce → Stripe Express by Country, choose a mode, and select the countries.
Documentation
- Settings — every option explained, including empty-list behaviour and a worked example.
- Hooks — the
wsec_is_customer_allowedfilter for custom logic, plus the WooCommerce/Stripe hooks the plugin uses.
Development
See CLAUDE.md for architecture and conventions, and
dev-notes/00-project-tracker.md for the
roadmap. The codebase follows the WordPress Coding Standards — run phpcs before
committing.
License
GPL-2.0-or-later. See LICENSE.
Read the full README on GitHub →