Apply default locale before country locale

This commit is contained in:
Mike Jolley 2017-09-20 16:03:26 +01:00
parent c0542be4ff
commit eb3396328b
2 changed files with 129 additions and 132 deletions

View File

@ -48,46 +48,8 @@ jQuery( function( $ ) {
var field = thisform.find( value ); var field = thisform.find( value );
if ( thislocale[ key ] ) { // Set to defaults.
if ( locale['default'][ key ] ) {
if ( thislocale[ key ].label ) {
field.find( 'label' ).html( thislocale[ key ].label );
}
if ( thislocale[ key ].placeholder ) {
field.find( 'input' ).attr( 'placeholder', thislocale[ key ].placeholder );
field.find( '.select2-selection__placeholder' ).text( thislocale[ key ].placeholder );
// Use the i18n label as a placeholder if there is no label element or i18n placeholder.
} else if ( thislocale[ key ].label && ! field.find( 'label' ).length ) {
field.find( 'input' ).attr( 'placeholder', thislocale[ key ].label );
field.find( '.select2-selection__placeholder' ).text( thislocale[ key ].label );
}
field_is_required( field, false );
if ( typeof thislocale[ key ].required === 'undefined' && locale['default'][ key ].required === true ) {
field_is_required( field, true );
} else if ( thislocale[ key ].required === true ) {
field_is_required( field, true );
}
if ( key !== 'state' ) {
if ( thislocale[ key ].hidden === true ) {
field.hide().find( 'input' ).val( '' );
} else {
field.show();
}
}
if ( thislocale[ key ].priority ) {
field.data( 'priority', thislocale[ key ].priority );
} else if ( locale['default'][ key ].priority ) {
field.data( 'priority', locale['default'][ key ].priority );
}
} else if ( locale['default'][ key ] ) {
if ( 'state' !== key ) { if ( 'state' !== key ) {
if ( typeof locale['default'][ key ].hidden === 'undefined' || locale['default'][ key ].hidden === false ) { if ( typeof locale['default'][ key ].hidden === 'undefined' || locale['default'][ key ].hidden === false ) {
field.show(); field.show();
@ -117,6 +79,41 @@ jQuery( function( $ ) {
} }
} }
// Set to locale.
if ( thislocale[ key ] ) {
if ( thislocale[ key ].label ) {
field.find( 'label' ).html( thislocale[ key ].label );
}
if ( thislocale[ key ].placeholder ) {
field.find( 'input' ).attr( 'placeholder', thislocale[ key ].placeholder );
}
field_is_required( field, false );
if ( typeof thislocale[ key ].required === 'undefined' && locale['default'][ key ].required === true ) {
field_is_required( field, true );
} else if ( thislocale[ key ].required === true ) {
field_is_required( field, true );
}
if ( key !== 'state' ) {
if ( thislocale[ key ].hidden === true ) {
field.hide().find( 'input' ).val( '' );
} else {
field.show();
}
}
if ( thislocale[ key ].priority ) {
field.data( 'priority', thislocale[ key ].priority );
} else if ( locale['default'][ key ].priority ) {
field.data( 'priority', locale['default'][ key ].priority );
}
}
}); });
var fieldsets = $('.woocommerce-billing-fields__field-wrapper, .woocommerce-shipping-fields__field-wrapper, .woocommerce-address-fields__field-wrapper, .woocommerce-additional-fields__field-wrapper .woocommerce-account-fields'); var fieldsets = $('.woocommerce-billing-fields__field-wrapper, .woocommerce-shipping-fields__field-wrapper, .woocommerce-address-fields__field-wrapper, .woocommerce-additional-fields__field-wrapper .woocommerce-account-fields');
@ -152,4 +149,4 @@ jQuery( function( $ ) {
rows.detach().appendTo( wrapper ); rows.detach().appendTo( wrapper );
} ); } );
}); });
}); });

View File

@ -1 +1 @@
jQuery(function(e){function a(e,a){a?(e.find("label").append(' <abbr class="required" title="'+wc_address_i18n_params.i18n_required_text+'">*</abbr>'),e.addClass("validate-required")):(e.find("label abbr").remove(),e.removeClass("validate-required"))}if("undefined"==typeof wc_address_i18n_params)return!1;var i=wc_address_i18n_params.locale.replace(/&quot;/g,'"'),t=e.parseJSON(i);e(document.body).bind("country_to_state_changing",function(i,d,l){var r,o=l;r="undefined"!=typeof t[d]?t[d]:t["default"];var n=o.find("#billing_postcode_field, #shipping_postcode_field"),f=o.find("#billing_city_field, #shipping_city_field"),s=o.find("#billing_state_field, #shipping_state_field");n.attr("data-o_class")||(n.attr("data-o_class",n.attr("class")),f.attr("data-o_class",f.attr("class")),s.attr("data-o_class",s.attr("class")));var p=e.parseJSON(wc_address_i18n_params.locale_fields);e.each(p,function(e,i){var d=o.find(i);r[e]?(r[e].label&&d.find("label").html(r[e].label),r[e].placeholder?(d.find("input").attr("placeholder",r[e].placeholder),d.find(".select2-selection__placeholder").text(r[e].placeholder)):r[e].label&&!d.find("label").length&&(d.find("input").attr("placeholder",r[e].label),d.find(".select2-selection__placeholder").text(r[e].label)),a(d,!1),"undefined"==typeof r[e].required&&!0===t["default"][e].required?a(d,!0):!0===r[e].required&&a(d,!0),"state"!==e&&(!0===r[e].hidden?d.hide().find("input").val(""):d.show()),r[e].priority?d.data("priority",r[e].priority):t["default"][e].priority&&d.data("priority",t["default"][e].priority)):t["default"][e]&&("state"!==e&&("undefined"==typeof t["default"][e].hidden||!1===t["default"][e].hidden?d.show():!0===t["default"][e].hidden&&d.hide().find("input").val("")),"postcode"!==e&&"city"!==e&&"state"!==e||(t["default"][e].label&&d.find("label").html(t["default"][e].label),t["default"][e].placeholder&&d.find("input").attr("placeholder",t["default"][e].placeholder)),!0===t["default"][e].required&&0===d.find("label abbr").length&&a(d,!0),t["default"][e].priority&&d.data("priority",t["default"][e].priority))}),e(".woocommerce-billing-fields__field-wrapper, .woocommerce-shipping-fields__field-wrapper, .woocommerce-address-fields__field-wrapper, .woocommerce-additional-fields__field-wrapper .woocommerce-account-fields").each(function(a,i){var t=e(i).find(".form-row"),d=t.first().parent(),l=0;t.each(function(){e(this).data("priority")||e(this).data("priority",l+1),l=e(this).data("priority")}),t.sort(function(a,i){var t=e(a).data("priority"),d=e(i).data("priority");return t>d?1:t<d?-1:0}),t.detach().appendTo(d)})})}); jQuery(function(e){function a(e,a){a?(e.find("label").append(' <abbr class="required" title="'+wc_address_i18n_params.i18n_required_text+'">*</abbr>'),e.addClass("validate-required")):(e.find("label abbr").remove(),e.removeClass("validate-required"))}if("undefined"==typeof wc_address_i18n_params)return!1;var i=wc_address_i18n_params.locale.replace(/&quot;/g,'"'),t=e.parseJSON(i);e(document.body).bind("country_to_state_changing",function(i,d,r){var l,o=r;l="undefined"!=typeof t[d]?t[d]:t["default"];var n=o.find("#billing_postcode_field, #shipping_postcode_field"),f=o.find("#billing_city_field, #shipping_city_field"),s=o.find("#billing_state_field, #shipping_state_field");n.attr("data-o_class")||(n.attr("data-o_class",n.attr("class")),f.attr("data-o_class",f.attr("class")),s.attr("data-o_class",s.attr("class")));var p=e.parseJSON(wc_address_i18n_params.locale_fields);e.each(p,function(e,i){var d=o.find(i);t["default"][e]&&("state"!==e&&("undefined"==typeof t["default"][e].hidden||!1===t["default"][e].hidden?d.show():!0===t["default"][e].hidden&&d.hide().find("input").val("")),"postcode"!==e&&"city"!==e&&"state"!==e||(t["default"][e].label&&d.find("label").html(t["default"][e].label),t["default"][e].placeholder&&d.find("input").attr("placeholder",t["default"][e].placeholder)),!0===t["default"][e].required&&0===d.find("label abbr").length&&a(d,!0),t["default"][e].priority&&d.data("priority",t["default"][e].priority)),l[e]&&(l[e].label&&d.find("label").html(l[e].label),l[e].placeholder&&d.find("input").attr("placeholder",l[e].placeholder),a(d,!1),"undefined"==typeof l[e].required&&!0===t["default"][e].required?a(d,!0):!0===l[e].required&&a(d,!0),"state"!==e&&(!0===l[e].hidden?d.hide().find("input").val(""):d.show()),l[e].priority?d.data("priority",l[e].priority):t["default"][e].priority&&d.data("priority",t["default"][e].priority))}),e(".woocommerce-billing-fields__field-wrapper, .woocommerce-shipping-fields__field-wrapper, .woocommerce-address-fields__field-wrapper, .woocommerce-additional-fields__field-wrapper .woocommerce-account-fields").each(function(a,i){var t=e(i).find(".form-row"),d=t.first().parent(),r=0;t.each(function(){e(this).data("priority")||e(this).data("priority",r+1),r=e(this).data("priority")}),t.sort(function(a,i){var t=e(a).data("priority"),d=e(i).data("priority");return t>d?1:t<d?-1:0}),t.detach().appendTo(d)})})});