-
-
Save Drewberrysteph/e7f44d23d714617134ad7250d9149b06 to your computer and use it in GitHub Desktop.
Shopify auto currency based on user's location (without needing to refresh)
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<script> | |
function setCookie(key, value, expiry) { | |
var expires = new Date(); | |
expires.setTime(expires.getTime() + (expiry * 24 * 60 * 60 * 1000)); | |
document.cookie = key + '=' + value + ';expires=' + expires.toUTCString() + ';path=/'; | |
} | |
$(document).ready(function () { | |
// You need to enable the currency that you want to be supported under shopify settings/payment | |
var currency = {"GR":"EUR", "JP":"JPY", "PH":"PHP", "US":"USD"}; // Add capital and currency | |
$.get("https://ipinfo.io/json", (location) => { | |
var userCurrency = currency[location.country]; | |
setCookie('cart_currency', userCurrency, '1') | |
},"jsonp"); | |
}); | |
</script> |
@numzie try to replace line 12 with
var userCurrency = currency[location.country] ? currency[location.country] : "EUR" ;
I think you have an extra curly bracket on line 14. Anyhow, I still need to reload for the currency to switch.
`<script>
function setCookie(key, value, expiry) {
var expires = new Date();
expires.setTime(expires.getTime() + (expiry * 24 * 60 * 60 * 1000));
document.cookie = key + '=' + value + ';expires=' + expires.toUTCString() + ';path=/';
}
$(document).ready(function () {
// You need to enable the currency that you want to be supported under shopify settings/payment
var currency = {"IT":"EUR", "BR":"BRL", "CO":"COP", "ES":"EUR", "BO":"BOB","CL":"CLP","EC":"USD","GY":"GYD", "MX":"MXN", "PY":"PYG","PE":"PEN","PT":"EUR","SR":"SRD","UY":"UYU","VE":"USD"}; // Add capital and currency
$.get("https://ipinfo.io/json", (location) => {
var userCurrency = currency[location.country];
console.log(userCurrencyconcat("JOVA"));
setCookie('cart_currency', userCurrency, '1')
},"jsonp");
});
</script>`
This is my code, did do something wrong?
@Jovdza012 Thanks, try to clear cache before testing.
I did, I am testing it with a VPN and with a clean browser every time (I use the guest account on chrome). I put it in theme.liquid file, below the Facebook tracking code, and before the theme loads its CSS :/
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
@Drewberrysteph - is there any way to do a default currency?
I have a Danish shop. It is in DKK for all Danes.
I support another 5 currencies, which I would match up with a country code.
However for all other countries I would like EURO as default - and I would very much like to avoid having to pair all countries in the world with EURO :)