-
-
Save Drewberrysteph/e7f44d23d714617134ad7250d9149b06 to your computer and use it in GitHub Desktop.
<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> |
@kwibis you can do that for other API's that requires key. No it does not.
@kwibis you can do that for other API's that requires key. No it does not.
Can we use this logic to show divs on location base.. If yes, then can you please show show how?
@engr-hammad-uet, yes
setCookie('country', location.country, '1')
Then you get the country code in the cookie.
@Drewberrysteph, thanks! I want to use the script, but not sure why to add capitals. Do you mean country code? If so, I'd like the website to always be EUR. except for the currencies added to that VAR list (AUD, USD, CAD, GBP, CHF, TTD, SEK).
@kwisis, sure, country code.
Hi @Drewberrysteph, thanks for creating this!
I am trying to use it on my store (https://qimnuq0ewum00sz7-5518655558.shopifypreview.com) but can't seem to make it work. I changed GR for ES (as I am in Spain atm) but it doesn't change for me. I only want to detect the visitors IP and show the currencies in their $. Can you assist?
@paularupolo sorry for the late reply, check comment on line 9 and 10
@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 :)
@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 :/
@Drewberrysteph thanks for the script. However, you do need an api-key as we will surpass the amount of requests allowed. Also, does this refresh our website?