skip to Main Content

I am searching for a solution to change the Currency based on the url.

For puroxx.net I would like to set GBP as currency
For nl.puroxx.net I would like to set EUR as currency.

This is what I got so far:

if(window.location.host == 'nl.puroxx.net'){
    $("#localization_form").val('NL');
    $("#localization_form").change();
} 
else {
    $("#localization_form").val('GB');
    $("#localization_form").change();
}

And in the footer of the site I added:

      {% form 'localization' %}
        <select name="country_code">
          {% for country in localization.available_countries %}
          <option value="{{ country.iso_code }}"
                  {%- if country == localization.country %} selected="selected"{% endif %}>
            {{ country.name }} ({{ country.iso_code }}) - {{ country.currency.symbol }}
          </option>
          {% endfor %}
        </select>
      {% endform %}

Also added:

  $('.shopify-localization-form select').on('change', function() {
  $(this)
    .parents('form')
    .submit();
});

What am I missing?
Thanks!

2

Answers


  1. Chosen as BEST ANSWER

    Here is the working code:

     $('.shopify-localization-form select').on('change', function() {
      $(this)
        .parents('form')
        .submit();
    });
    
    
    
    if(window.location.host == 'nl.puroxx.net'){ 
    if($('#localization_form [name=country_code]').val() != 'NL') { 
      $("#localization_form [name=country_code]").val('NL'); 
    $("#localization_form").submit(); 
    }
    } 
    else { 
    if($('#localization_form [name=country_code]').val() != 'GB') { 
      $("#localization_form [name=country_code]").val('GB'); 
    $("#localization_form").submit(); 
    }
    }
    

  2. Try to Update the JS Code as below:

    if (window.location.host == 'nl.puroxx.net') {
        if ($('#localization_form [name=country_code]').val() != 'NL') {
            $("#localization_form [name=country_code]").val('NL');
            $("#localization_form").submit();
        }
    } else {
        if ($('#localization_form [name=country_code]').val() != 'GB') {
            $("#localization_form [name=country_code]").val('GB');
            $("#localization_form").submit();
        }
    }
    $('#localization_form [name=country_code]').on('change', function() {
      $('#localization_form').submit();
    });
    

    Try to optimize the code. Ref: https://shopify.dev/themes/internationalization/multiple-currencies-languages#javascript-submission-of-the-localization-form

    Login or Signup to reply.
Please signup or login to give your own answer.
Back To Top
Search