WordPress Plugin
WP Geo Currency
WooCommerce multi-currency plugin with IP-based geo-detection, live exchange rates, and AJAX currency switching across the full checkout pipeline.
Built and tested for a specific client project. Works well in that context but may need adjustments for other setups.
Key Features
- IP-based geo-detection with 3-level fallback chain
- Live exchange rates via external API
- AJAX currency switching without page reload
- Full WooCommerce pipeline integration (product, cart, checkout, orders)
- WordPress Transients for rate caching
- Manual currency override for visitors
Overview
About a third of international shoppers abandon carts when prices are in a foreign currency. This plugin detects visitor location via IP and switches all prices to their local currency automatically. If IP detection fails, it falls back to browser locale, then to a configurable default — so currency detection never breaks.
Built for Customoo.com, a multi-currency marketplace that needed seamless international pricing without the overhead of WPML or a SaaS currency service.
How It Works
When a visitor loads any page, the plugin runs a 3-level detection chain:
- IP geo-location — determines country from visitor IP
- Browser locale — falls back to browser language settings
- Default currency — configurable fallback if both above fail
Once detected, all prices across product pages, cart, checkout, and order records display in the visitor's local currency. Exchange rates are fetched from an external API and cached using WordPress Transients to minimize API calls.
Visitors can manually switch currencies via an AJAX-powered dropdown — no page reload needed.
Installation
- Download the plugin ZIP from the sidebar
- Go to WordPress Admin → Plugins → Add New → Upload Plugin
- Upload the ZIP file and click Install Now
- Navigate to WooCommerce → Currency Settings to configure supported currencies and exchange rate provider
Configuration
- Supported currencies — select which currencies to offer
- Exchange rate provider — choose the API for live rates
- Cache duration — how often exchange rates refresh (default: 12 hours)
- Fallback currency — default when detection fails
- Rounding rules — configure decimal precision per currency
Requirements
- WordPress 6.0 or higher
- WooCommerce 8.0 or higher
- PHP 7.4 or higher
- An IP geo-location service (free tier available)
Known Limitations
- Prices are converted for display purposes. Orders are still processed in the store's base currency through the payment gateway. For true multi-currency payment processing, a compatible gateway is needed.
- IP detection accuracy depends on the geo-location provider. VPN users may see incorrect currencies (the manual override handles this).
Support
- Contact me for custom currency configurations or multi-gateway integration
License
Licensed under GPL-2.0+. Free to use, modify, and distribute.
Changelog
- Added support for additional exchange rate providers
- Improved fallback chain reliability
- Fixed rounding issues on checkout totals
- Initial release with IP detection and AJAX switching
- Exchange rate API integration
- Full checkout pipeline support
Need a custom version for your store?
I can extend this plugin or build something entirely new for your specific requirements.