You can get EU, EU VAT, EEA, and SCA countries in WooCommerce using the built-in WC()->countries->get_european_union_countries() method and small array adjustments, instead of manually maintaining these country lists yourself.
Why Use WooCommerce’s Built-In Country Lists
- EU, EEA, and related country groupings change over time (Brexit, accession countries) — a hardcoded list quickly goes stale
- WooCommerce maintains these lists as part of its own tax and compliance logic, so they stay current with core updates
- Useful for conditional payment gateways, tax logic, or region-specific notices based on the customer’s billing country
Step 1: Get EU Countries
$eu_countries = WC()->countries->get_european_union_countries();Get EU VAT Countries
The EU VAT area includes Monaco (MC), which isn’t part of the EU itself, so this uses a dedicated parameter:
$eu_vat_countries = WC()->countries->get_european_union_countries( 'eu_vat' );
Get EEA (European Economic Area) Countries
The EEA extends the EU single market to include Iceland, Liechtenstein, and Norway:
$eea_countries = array_merge(
array( 'IS', 'LI', 'NO' ),
WC()->countries->get_european_union_countries()
);Get SCA (Strong Customer Authentication) Countries
SCA applies to EEA countries under the EU’s revised Payment Services Directive:
$sca_countries = array_merge(
array( 'IS', 'LI', 'NO' ),
WC()->countries->get_european_union_countries()
);In practice, SCA and EEA country lists overlap significantly — always verify against current regulatory guidance if your use case depends on precise legal accuracy, since requirements can shift.
Troubleshooting
Checking If a Customer’s Country Is in the List
$customer_country = WC()->customer->get_billing_country();
if ( in_array( $customer_country, WC()->countries->get_european_union_countries(), true ) ) {
// Customer is in the EU
}List Seems Out of Date
Since these lists live inside WooCommerce core, an outdated result usually means the WooCommerce version itself needs updating — check the changelog if a country’s status has recently changed and confirm your version reflects it.
Frequently Asked Questions
Are these lists automatically kept accurate?
They’re maintained as part of WooCommerce core, so keeping WooCommerce updated is the main way to ensure accuracy over time.
Can I use these for conditional payment gateway logic?
Yes, combine the country check with the woocommerce_available_payment_gateways filter to show or hide gateways based on whether the billing country falls in one of these groups.
Is the EEA list exactly EU plus 3 countries?
Generally yes (Iceland, Liechtenstein, Norway added to the EU list), though always confirm against current official sources for anything compliance-critical.
Conclusion
Getting EU, EU VAT, EEA, and SCA countries in WooCommerce is best done through the built-in get_european_union_countries() method rather than a manually maintained array. It stays accurate as WooCommerce core updates and saves you from tracking regulatory changes yourself.
See also How to Make a Customer Tax Exempt Based on a Checkout Field Value in WooCommerce. Then read How to Protect Revenue by Rotating Payment Methods.
Prefer no code? All-in-One Utilities Woo Add-on adds over 50 WooCommerce features, so you can switch them on without code.