-
-
Save palimadra/98127337d73270923925 to your computer and use it in GitHub Desktop.
Code that needs to be added as a new snippet in the shopify theme to be used in conjunction with currency picker at https://gist.github.com/palimadra/842e597a01552a4d0c8f
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
{% if settings.show_multiple_currencies %} | |
{{ "//cdn.shopify.com/s/javascripts/currencies.js" | script_tag }} | |
{{ "jquery.currencies.min.js" | asset_url | script_tag }} | |
<script> | |
Currency.format = '{{ settings.currency_format | default: 'money_with_currency_format' }}'; | |
var shopCurrency = '{{ shop.currency }}'; | |
/* Sometimes merchants change their shop currency, let's tell our JavaScript file */ | |
Currency.moneyFormats[shopCurrency].money_with_currency_format = {{ shop.money_with_currency_format | strip_html | json }}; | |
Currency.moneyFormats[shopCurrency].money_format = {{ shop.money_format | strip_html | json }}; | |
/* Default currency */ | |
var defaultCurrency = '{{ settings.default_currency | default: shop.currency }}'; | |
/* Cookie currency */ | |
var cookieCurrency = Currency.cookie.read(); | |
/* Fix for customer account pages */ | |
jQuery('span.money span.money').each(function() { | |
jQuery(this).parents('span.money').removeClass('money'); | |
}); | |
/* Saving the current price */ | |
jQuery('span.money').each(function() { | |
jQuery(this).attr('data-currency-{{ shop.currency }}', jQuery(this).html()); | |
}); | |
// If there's no cookie. | |
if (cookieCurrency == null) { | |
if (shopCurrency !== defaultCurrency) { | |
Currency.convertAll(shopCurrency, defaultCurrency); | |
} | |
else { | |
Currency.currentCurrency = defaultCurrency; | |
} | |
} | |
// If the cookie value does not correspond to any value in the currency dropdown. | |
else if (jQuery('[name=currencies]').size() && jQuery('[name=currencies] option[value=' + cookieCurrency + ']').size() === 0) { | |
Currency.currentCurrency = shopCurrency; | |
Currency.cookie.write(shopCurrency); | |
} | |
else if (cookieCurrency === shopCurrency) { | |
Currency.currentCurrency = shopCurrency; | |
} | |
else { | |
Currency.convertAll(shopCurrency, cookieCurrency); | |
} | |
jQuery('[name=currencies]').val(Currency.currentCurrency).change(function() { | |
var newCurrency = jQuery(this).val(); | |
Currency.convertAll(Currency.currentCurrency, newCurrency); | |
jQuery('.selected-currency').text(Currency.currentCurrency); | |
}); | |
var original_selectCallback = window.selectCallback; | |
var selectCallback = function(variant, selector) { | |
original_selectCallback(variant, selector); | |
Currency.convertAll(shopCurrency, jQuery('[name=currencies]').val()); | |
jQuery('.selected-currency').text(Currency.currentCurrency); | |
}; | |
$('body').on('ajaxCart.afterCartLoad', function(cart) { | |
Currency.convertAll(shopCurrency, jQuery('[name=currencies]').val()); | |
jQuery('.selected-currency').text(Currency.currentCurrency); | |
}); | |
jQuery('.selected-currency').text(Currency.currentCurrency); | |
</script> | |
{% endif %} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment