Compatibility

Sales By Country for WooCommerce is designed to work alongside the most popular WooCommerce multi-currency, multi-language, and country-based pricing extensions. When a supported plugin is active, the report detects it automatically — no configuration is required — and adjusts how country sales are calculated and displayed.

Requirements

RequirementMinimumTested up to
WordPress5.67.1
WooCommerce5.011.0.1
PHP7.2—
High-Performance Order Storage (HPOS)Fully supported — works with both legacy post-based order storage and HPOS.—
WooCommerce AnalyticsMust be enabled (included with WooCommerce).—
These figures are taken from the plugin’s own readme.txt and are updated each release. The Changelog records the WooCommerce and WordPress version each release was tested against.

How currency reporting works

Your store’s base currency is the one configured at WooCommerce → Settings → General → Currency. It is the currency WooCommerce uses to record and total every order, and the default the Sales By Country report displays.

The report always works in one currency at a time. It never blends several currencies into a single mixed total. When a multi-currency plugin is active a Currency filter appears; selecting a currency shows the orders actually paid in that currency, expressed in it. If you have not chosen one, the report falls back to your store’s default currency.

Conversions always use the exchange rate that was stored on each order at the moment the customer paid — never a live or current rate. That is what keeps historical reports stable: a report you ran last year produces the same figures today.

Supported multi-currency and multilingual plugins

Each of these is detected automatically when active. Nothing needs configuring inside Sales By Country.

PluginVendorHow it behaves in the report
CURCY – WooCommerce Multi CurrencyVillaThemeOrder totals are normalised to your base currency when WooCommerce imports them, so the default view is already exact. Selecting a currency multiplies each value back by the order’s saved rate. See the dedicated section below.
WooCommerce Multilingual & MulticurrencyWPML (OnTheGoSystems)When multi-currency mode is on and more than one currency is configured, a Currency filter appears. Also provides the Language filter described below.
YayCurrency – WooCommerce Multi Currency SwitcherYayCommerceThe currencies configured in Yay Currency populate the Currency filter. Each order’s stored Yay conversion rate is applied.
Currency Switcher for WooCommerceAeliaReads the exchange rate Aelia records on each order, including on refunds. The same converted values carry through to CSV exports.
WooCommerce Multi-CurrencyVariousDetected automatically; its active currencies populate the Currency filter.
Price Based on CountryOscar GareCountry-specific prices recorded on each order are read directly. Supported on both legacy and HPOS order storage.
Three of these have very similar names. If you are not sure which you have, check Plugins → Installed Plugins and match the vendor in the column above — "CURCY – WooCommerce Multi Currency" (VillaTheme), "WooCommerce Multilingual & Multicurrency" (WPML) and plain "WooCommerce Multi-Currency" are three different products.

If your multi-currency plugin is not on the list

The report still works, and it will not produce a wrong conversion — because it does not attempt one. With no supported plugin detected, no Currency filter appears and the report reads the order totals exactly as WooCommerce Analytics recorded them, with no exchange-rate handling of any kind.

What to watch for on an unsupported plugin. If your currency plugin stores each order’s total in the currency the customer paid rather than converting it to your base currency, the report will add those raw amounts together — so 100 USD and 100 EUR become 200. The totals per country are still correct in order counts and item counts; it is only the money columns that are affected. If you are unsure which your plugin does, compare a country’s Total Sales here against the same period in WooCommerce → Analytics → Revenue: if core Analytics has the same issue, it is how your currency plugin records orders, not the report. Contact us and we will look at adding support.

CURCY – WooCommerce Multi Currency (VillaTheme)

CURCY stores every order’s totals in your store’s base currency inside WooCommerce Analytics. Because of this, the default report view — with no currency selected — is already accurate and shown in your base currency.

The Currency filter lists all of the currencies you have enabled in CURCY. Selecting one shows only the orders that were actually paid in that currency, with each amount converted back using the exchange rate stored on the order at the time of purchase. This applies consistently to the main country table, the Best-Selling Products by Country table, and the single-country Orders table. Refunds are matched to their parent order, so refunded amounts are always included correctly.

If you enable CURCY on a store that already has orders, re-import your historical data. Go to Analytics → Settings → Import Historical Data, untick Skip previously imported customers and orders, and run the import — the same procedure as Past Order Import. Until you do, past orders were stored before CURCY normalised them and may show incorrect totals.

Multilingual (WPML)

When WPML WooCommerce Multilingual is active with more than one storefront language, the report gains a Language dropdown in addition to the country controls. This lets you see how sales break down across the language versions your customers used — useful for understanding which language drives sales in each country. The Language filter works together with the date range, the billing/shipping toggle, and the country filter.

Troubleshooting

ProblemWhat to check
No Currency filter appearsNo supported multi-currency plugin is active, or it is active but configured with only one currency. WPML additionally requires its multi-currency mode to be switched on.
Totals look wrong after installing a currency pluginRe-run the historical import so existing orders are re-processed under the new plugin’s rules. See Past Order Import.
Selecting a currency shows far fewer ordersExpected. The selected-currency view shows only orders actually paid in that currency — not your whole store converted into it.
Figures differ from WooCommerce → Analytics → RevenueCompare like with like first: see How the Numbers Are Calculated. If core Analytics shows the same discrepancy, the cause is upstream of this report.
No Language filter with WPML activeWPML needs more than one active storefront language for the dropdown to appear.