PluginUs.Net - Business Tools for WooCommerce and WordPress

[realize your idea - make your dreams come true]
Botoscope is currently in early access

Support Forum

You need to log-in to create request (topic) to the support

Force currency by Polylang language/URL instead of GeoIP - FOX free version

The support doesn work on Saturdays and Sundays, so some Friday requests can be answered on Monday. If you have problems with registration ask help on contact us page please
If you not got email within 24~36 business hours, firstly check your spam box, and if no any email from the support there - back to the forum and read answer here. DO NOT ANSWER ON EMAILS [noreply@pluginus.net] FROM THE FORUM!! Emails are just for your info, all answers should be published only here.
The support doesn work on Saturdays and Sundays, so some Friday requests can be answered on Monday.

Hello FOX support team,

I am using FOX - Currency Switcher Professional for WooCommerce (free version 1.4.6) on my WordPress/WooCommerce store, and I would like your guidance on a specific configuration.

My setup:
- WordPress + WooCommerce
- Polylang plugin installed for multilingual content
- 4 languages configured in Polylang:
• English (en_US) — default, URL: /
• French (fr_FR) — URL: /fr/
• English Canada (en_CA) — URL: /en-ca/
• French Canada (fr_CA) — URL: /fr-ca/
- Base currency in WooCommerce: EUR
- Currencies activated in FOX: USD and EUR

What I need:
I do NOT want to use GeoIP detection for currency. Instead, I want to force a specific currency based on the Polylang language URL, regardless of the visitor's IP location:

- URL"/" (English) → display USD
- URL"/fr/" (French) → display EUR
- URL"/en-ca/" (English Canada) → display CAD
- URL"/fr-ca/" (French Canada) → display CAD

This is required because Google Merchant Center flags my site for misrepresentation when GeoIP changes the displayed currency dynamically. Google requires one URL = one fixed currency, with no variation.

My questions:
1. Does FOX free version support forcing currency based on Polylang language/URL natively? If yes, where can I configure it?
2. If not, does FOX Pro version include native Polylang integration to force currency by language? Could you confirm before I purchase?
3. Is there a recommended PHP snippet or hook (such as woocs_current_currency filter) that I can use to force currency by URL safely without breaking the plugin?
4. Is it possible to add a third currency (CAD) in the free version, or is it strictly limited to 2 currencies?

Thank you very much for your help. I look forward to your response.

Best regards,
Tas Umit

Hello Tas

Good news — what you need is fully supported.

To force a specific currency based on the Polylang language URL, use this ready-made snippet: https://currency-switcher.com/switch-currency-with-language-change

This gives you exactly the behavior you described: each URL always shows one fixed currency, GeoIP is not involved, and Google Merchant Center will have no issue with it.(test it please on your side to avoid conflicts with another plugins)

For currency-specific pricing per product, FOX has a Fixed Prices feature (see tab Advanced) — you can set a fixed price in each currency directly on the product level. This is stored in product meta and is completely independent of any dynamic detection.

Regarding your currency count: the free version supports up to 2 currencies. Since you need USD, EUR and CAD, you will need the Pro version https://currency-switcher.com/downloads

 

Hello,

Thank you very much for your quick and helpful response — that's great news!

I will test the snippet from https://currency-switcher.com/switch-currency-with-language-change on my staging environment before deploying it to production, to make sure there are no conflicts with my other plugins.

I also have one additional question:

Since I am targeting multiple countries (USA, Belgium, France, Canada) with different language URLs in Polylang, the"Welcome currency" option in FOX is causing me an issue. It forces all first-time visitors and search engine crawlers (Google, Bing, etc.) to see the same currency on their first visit, regardless of the URL they land on.

For example, if my Welcome currency is set to USD and a Belgian visitor lands directly on /fr/ (French URL), they see USD on their first page load before the Polylang URL detection kicks in. This creates a brief mismatch between the URL language and the displayed currency, which is exactly what Google Merchant Center flags as misrepresentation.

My questions:
1. Is there a way to completely disable or bypass the"Welcome currency" feature so that the currency is determined ONLY by the URL/language from the very first page load?
2. Is there a hook or filter I can use to override the welcome currency based on the URL before it is applied?
3. In FOX Pro, does this behavior change? Can the welcome currency be set per language/URL natively?

I want to ensure that:
- / (English) → USD from the very first visit (no other currency shown briefly)
- /fr/ (French) → EUR from the very first visit
- /en-ca/ → CAD from the very first visit
- /fr-ca/ → CAD from the very first visit

Thank you again for your help. Looking forward to your response.

Best regards,
Tas Umit

Hello Tas

The Welcome currency feature does not have a disable button, but your concern is fully solvable with a simple filter snippet.

The way Welcome currency works internally: on the very first visit it calls get_option('woocs_welcome_currency') to decide what to show. WordPress fires a standard filter at that exact moment, so you can intercept it and return the correct currency based on the URL before it is ever applied to the session.

Add this to your theme's functions.php or a custom plugin:

add_filter('option_woocs_welcome_currency', function($value) {
    $uri = $_SERVER['REQUEST_URI'] ?? '';
    if (strpos($uri, '/fr-ca/') !== false) return 'CAD';
    if (strpos($uri, '/en-ca/') !== false) return 'CAD';
    if (strpos($uri, '/fr/')    !== false) return 'EUR';
    return 'USD';
});

This runs inside the Welcome currency block itself, so there is no brief mismatch — the correct currency is set from the very first page load, regardless of which URL the visitor or Google bot lands on.

This behavior is identical in the free and Pro versions. The only difference between them is the number of currencies allowed.

Please test on staging first as always.

p.s. one important note for testing: the Welcome currency logic only fires on the very first unique visit per browser session. If you reload the page or visit again in the same browser, it will not fire again. To properly test this snippet, use different browsers or a VPN to simulate a fresh first visit each time — otherwise you will not be able to tell whether it is working correctly.

Welcome!