I’ve been doing a lot of research for a new client project lately. They’re migrating from a bespoke membership site, built on another CMS, to WordPress and one feature they really wanted to keep was multi-currency support. Having worked on, researched, and ditched support, fairly late in the process for Real World Records, I was fairly keen to drop support for this but understanding that this was a potential selling point for the client and their site, I wanted to look into it again and see if anything had changed in the WordPress + multi-currency space since last year.
TL;DR: It hasn’t. My recommendation is not to use multiple currencies in WordPress. Read on for why.
Let’s Start with WordPress
Out of the box, WordPress is a fantastic, powerful piece of open source software. Add plugins to it and you’ve got a powerhouse of web software which you can do almost anything with. When you work with WordPress everyday and you use (and build) plugins all the time, and see the variety and extensibility you have, you’d think that something like changing once price to another, based on an API call to a 3rd party currency converting service, would be easy, right?
See, the problem with these solutions is that on their own, they work perfectly well. Install WordPress, install WooCommerce, install the currency converter extension, add your products, connect to a payment gateway, and start selling. Sounds easy, and, for the most part, doing that, is. But you’re about to enter dangerous, unchartered, undocumented, and incompatible territory.
Say, you sell something where you wish to take a recurring payment over a monthly period. This could be a piece of software or a membership – both WooCommerce and Easy Digital Downloads (to name two of my favourites) has you covered. You can install their Software add-on and WooCommerce Subscriptions and instantly accept payments on a monthly basis for access to a license key for your software. Now go and check your currency converter extension. Does it still work? Probably not. If the answer is yes, I recommend looking into if it bills your customers in their currency when combined with the WooCommerce Subscriptions extension. My experience suggests that it won’t and it’ll default back to the base currency of your store.
Compatibility with Other Plugins and Extensions
As soon as you start adding new plugins into the mix, accepting multiple currencies on a single WordPress website will fail you. Guaranteed. Some currency converters will be more robust than others but at some point, when you tip the balance and install the perfect plugin that does some feature that you really need, you’ll find that it’s not multi-currency compatible and the whole house of cards will come tumbling down.
For me, this was a big realisation. For the first time in my 6+ years of using WordPress as part of my everyday business, WordPress has it backwards. Multi-currency does not belong in a single WordPress installation. When you think about it though, this makes perfect sense. Do you go to Amazon.com and expect to pay in GBP? No, you go to Amazon.co.uk. Do you go to Gap.com and do the same? Didn’t think so. There is always a separate website, for a separate country, running it’s own currency, dealing with it’s own tax liabilities, dealing with it’s customers, directly. And that is absolutely, 100%, the right way to do it.
So Why Does WordPress Try to do it Differently?
I think what happened is this: WordPress is used by so many different types of people, that the need to do something differently (more easily), came out of necessity. WordPress now powers over 28% of the internet and WooCommerce alone caters for 37% of all eCommerce sites online. That’s not WordPress powered eCommerce sites, that’s all eCommerce sites. As such, people want to be able to charge customers in different currencies and as it was technically possible, developers made this happen by way of currency conversion extensions for WooCommerce, Easy Digital Downloads, Jigoshop, and so on. They most likely sold their extensions too. I mean, why not make a little money off the back of these huge industries? If you have the skills, put them to use!
The problem is that these currency converters just aren’t compatible enough. I don’t think this is an unreasonable statement – people want to be able to extend their WordPress website with additional plugins. So making a plugin, add-on, or extension that only caters to the bare minimum set-up of WordPress + theme + WooCommerce is unreasonable. What if I wanted to start selling membership on the top of a popular eCommerce store that I ran? What about shipping products using a new shipping extension, utilising a shipping company that’s highly used but with a poorly constructed or outdated API? Or doing something more simple, like issuing coupons? Sorry, you’re going to be left high and dry. Sadly, these things just aren’t compatible.
Is There a Solution?
My recommendation is that if you really have to show customers a price in multiple currencies, show them what they roughly translate to as opposed to allowing them to actually pay in that currency. This is easily done with something like Open Currency Converter and leaves you to think about whether what you’re doing is really worth dealing with the headache that is multi-currency. Have you considered charging in just USD (the internet’s default, universal, go-to currency)? Or how about running separate installations of WordPress, offering different products and services that are more targeted to the audiences in those countries? Have you even considered how accounting for tax fits into all of this?
It’s worth thinking about but I urge you to avoid going down the route of using multi-currency in a single installation of WordPress. It is not, by any means, a match made in heaven.