PluginProbe
PostNL for WooCommerce / 3.1.4
PostNL for WooCommerce v3.1.4
5.9.12 5.9.11 5.9.10 5.9.9 5.9.8 5.9.7 5.9.6 trunk 2.5.0 2.5.1 2.5.2 2.5.3 2.5.4 2.5.5 3.1.4 3.1.5 3.1.6 3.1.7 4.0.0 4.0.1 4.0.2 4.3.2 4.3.3 4.4.0 4.4.1 All 72 releases
woo-postnl / assets / js / nl-checkout.js

nl-checkout.js in PostNL for WooCommerce 3.1.4, at assets/js/nl-checkout.js

137 lines 5.4 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 /* Most functionality copied from woocommerce/assets/js/checkout.js */
2 /* Thanks Mike! */
3
4 jQuery(document).ready(function($) {
5
6 /* Hide custom NL fields by default when country not NL */
7 var billing_country = $('#billing_country').val();
8 var shipping_country = $('#shipping_country').val();
9 if (billing_country != 'NL') {
10 $('#billing_street_name_field').hide();
11 $('#billing_house_number_field').hide();
12 $('#billing_house_number_suffix_field').hide();
13 }
14 if (shipping_country != 'NL') {
15 $('#shipping_street_name_field').hide();
16 $('#shipping_house_number_field').hide();
17 $('#shipping_house_number_suffix_field').hide();
18 }
19
20 /* Localisation */
21 var locale_json = woocommerce_params.locale.replace(/"/g, '"');
22 var locale = $.parseJSON(locale_json);
23 var required = ' <abbr class="required" title="' + woocommerce_params.i18n_required_text + '">*</abbr>';
24
25 $('body')
26
27 /* Handle locale */
28 .bind('country_to_state_changing', function(event, country, wrapper) {
29 var thislocale,
30 thisform = wrapper,
31 $postcodefield = thisform.find('#billing_postcode_field, #shipping_postcode_field'),
32 $cityfield = thisform.find('#billing_city_field, #shipping_city_field'),
33 $address1field = thisform.find('#billing_address_1_field, #shipping_address_1_field'),
34 $address2field = thisform.find('#billing_address_2_field, #shipping_address_2_field'),
35 $streetfield = thisform.find('#billing_street_name_field, #shipping_street_name_field'),
36 $numberfield = thisform.find('#billing_house_number_field, #shipping_house_number_field'),
37 $suffixfield = thisform.find('#billing_house_number_suffix_field, #shipping_house_number_suffix_field');
38
39 if (country == 'NL') {
40 /* show custom NL fields */
41 $streetfield.show();
42 $numberfield.show();
43 $suffixfield.show();
44
45 /* Hide regular address classes */
46 $address1field.find('label abbr').remove();
47 $address1field.hide();
48 $address2field.hide();
49
50 /* Place postcode & city on one line */
51 $postcodefield.removeClass('form-row-wide').addClass('form-row-first');
52 $cityfield.removeClass('form-row-wide').addClass('form-row-last');
53
54 /* Mark required fields */
55 if ($streetfield.find('label abbr').size() == 0) $streetfield.find('label').append(required);
56 if ($numberfield.find('label abbr').size() == 0) $numberfield.find('label').append(required);
57
58 /* Add validation required classes */
59 $streetfield.addClass('validate-required');
60 $numberfield.addClass('validate-required');
61 } else {
62 /* Hide custom NL fields */
63 $streetfield.hide();
64 $numberfield.hide();
65 $suffixfield.hide();
66
67 /* Unmark required fields */
68 $streetfield.find('label abbr').remove();
69 $numberfield.find('label abbr').remove();
70
71 /* Remove validation required classes */
72 $streetfield.removeClass('validate-required');
73 $numberfield.removeClass('validate-required');
74 }
75
76 if (typeof locale[country] != 'undefined') {
77 thislocale = locale[country];
78 } else {
79 thislocale = locale['default'];
80 }
81
82 /* Handle locale fields */
83 var locale_fields = {
84 'address_1': '#billing_address_1_field, #shipping_address_1_field',
85 'address_2': '#billing_address_2_field, #shipping_address_2_field',
86 };
87
88 $.each(locale_fields, function(key, value) {
89
90 var field = thisform.find(value);
91
92 if (thislocale[key]) {
93
94 if (thislocale[key]['label']) {
95 field.find('label').html(thislocale[key]['label']);
96 }
97
98 if (thislocale[key]['placeholder']) {
99 field.find('input').attr('placeholder', thislocale[key]['placeholder']);
100 }
101
102 field.find('label abbr').remove();
103
104 if (typeof thislocale[key]['required'] == 'undefined' && locale['default'][key]['required'] == true) {
105 field.find('label').append(required);
106 } else if (thislocale[key]['required'] == true) {
107 field.find('label').append(required);
108 }
109
110 if (key !== 'state') {
111 if (thislocale[key]['hidden'] == true) {
112 field.hide().find('input').val('');
113 } else {
114 field.show();
115 }
116 }
117 } else if (locale['default'][key]) {
118 if (locale['default'][key]['required'] == true) {
119 if (field.find('label abbr').size() == 0) field.find('label').append(required);
120 }
121 if (key !== 'state' && (typeof locale['default'][key]['hidden'] == 'undefined' || locale['default'][key]['hidden'] == false)) {
122 field.show();
123 }
124 }
125 });
126 })
127
128 /* Init trigger */
129 .bind('init_checkout', function() {
130 $('#billing_country, #shipping_country, .country_to_state').change();
131 });
132
133 /* Update on page load */
134 if (woocommerce_params.is_checkout == 1) {
135 $('body').trigger('init_checkout');
136 }
137 });