Posted on November 28, 2017
I am currently working on a client’s website that provides services in 6 different countries.
The main functionality they need on their website is a custom registration form that accepts payment from these countries.
Step 1: Gravity Forms Multi Currency
I installed the Gravity Forms Multi Currency plugin so I can accept different currencies for different form, by default Gravity Form only accepts one currency per website.
Step 2: Add custom currencies
However, I realised that by default, gravity form does not support Indonesian Rupiah and Vietnamese Dong. I tried using the gform_currencies hook to add those currencies to the form. It worked, but here comes the trickiest part.
Step 3: Configure PayPal
When I tried to checkout to PayPal, the currency automatically changed to USD, which means, 30,000 IDR become 30,000 USD! This wasn’t what I was expecting. I contacted Gravity Forms support but they couldn’t understand and solve my problem. So I guess I have to solve it myself. I thought this might be a PayPal issue so again I went to trace the problem. And this is what I found – Gravity Forms is using PayPal REST Payments API therefore it only supports certain currencies. Unluckily, Vietnamese Dong and Indonesian Rupiah are not in the list of supported currencies. I have also emailed PayPal for support. They did not directly answer my question, but they informed me that each PayPal account can only accept 1 currency.
Step 4: Try other payment methods
Gravity Forms supports multiple payment gateways, not just PayPal, fortunately. I activated the built in Stripe add-on and tested the payment with my test account and it worked!
For those who wish to add custom currencies to their Gravity Forms, I suggest that you can use Stripe (provided that it is supported in your country), because it automatically converts the other currencies to your main currency. It also supports more currencies than PayPal.
- Gravity Forms Multi Currency plugin: https://wordpress.org/plugins/gravity-forms-multi-currency/
- gform_currencies hook: https://docs.gravityforms.com/gform_currencies/
- PayPal REST Payments API supported countries: https://developer.paypal.com/docs/integration/direct/rest/currency-codes/
- Currencies supported by Stripe: https://stripe.com/docs/currencies