{% import "_includes/forms" as forms %} {{ forms.textField({ first: true, label: "Name"|t('commerce'), instructions: "What this tax zone will be called in the CP."|t('commerce'), id: 'name', name: 'name', value: taxZone is defined ? taxZone.name, errors: taxZone is defined ? taxZone.getErrors('name'), autofocus: true, required: true, translatable: true }) }} {{ forms.textField({ label: "Description"|t('commerce'), instructions: "Describe this tax zone."|t('commerce'), id: 'description', name: 'description', value: taxZone is defined ? taxZone.description, errors: taxZone is defined ? taxZone.getErrors('description'), }) }} {{ forms.radioGroupField({ label: 'Type'|t('commerce'), id: 'isCountryBased', name: 'isCountryBased', options: {1 : 'Country-based'|t('commerce'), 0 : 'State-based'|t}, value: taxZone is defined ? taxZone.isCountryBased, errors: taxZone is defined ? taxZone.getErrors('isCountryBased'), required: true, }) }} {{ forms.multiselectField({ label: 'Countries'|t('commerce'), instructions: 'Choose the countries that this zone applies to.'|t('commerce'), id: 'countries', name: 'countries', options: countries, values: taxZone is defined ? taxZone.getCountryIds(), errors: taxZone is defined ? taxZone.getErrors('countries'), required: true, class: 'selectize fullwidth', }) }} {{ forms.multiselectField({ label: 'States'|t('commerce'), id: 'states', instructions: 'Choose the states that this zone applies to.'|t('commerce'), name: 'states', options: states, values: taxZone is defined ? taxZone.getStateIds(), errors: taxZone is defined ? taxZone.getErrors('states'), required: true, class: 'selectize fullwidth', }) }} {% if craft.commerce.settings.useBillingAddressForTax %} {% set labelDefault = "Default to this tax zone when no billing address is set"|t('commerce') %} {% else %} {% set labelDefault = "Default to this tax zone when no shipping address is set"|t('commerce') %} {% endif %} {{ forms.checkboxField({ label: labelDefault, id: 'default', name: 'default', value: 1, checked: taxZone is defined ? taxZone.default, errors: taxZone is defined ? taxZone.getErrors('default') }) }} {% set countriesId = 'countries'|namespaceInputId|e('js') %} {% set statesId = 'states'|namespaceInputId|e('js') %} {% set isCountryBasedName = 'isCountryBased'|namespaceInputName|e('js') %} {% js %} $('#{{ countriesId }}, #{{ statesId }}').selectize({ plugins: ['remove_button'], dropdownParent: 'body' }); $('[name="{{ isCountryBasedName }}"]').change(function () { if (!$(this).is(':checked')) { return; } if ($(this).val() * 1) { $('#{{ countriesId }}')[0].selectize.enable(); $('#{{ statesId }}')[0].selectize.disable(); $('#{{ countriesId }}-field').show(); $('#{{ statesId }}-field').hide(); } else { $('#{{ countriesId }}')[0].selectize.disable(); $('#{{ statesId }}')[0].selectize.enable(); $('#{{ countriesId }}-field').hide(); $('#{{ statesId }}-field').show(); } }); $('[name="{{ isCountryBasedName }}"]:checked').trigger('change'); {% endjs %}