PluginProbe
PostNL for WooCommerce / 4.0.0
PostNL for WooCommerce v4.0.0
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 / checkout.js

checkout.js in PostNL for WooCommerce 4.0.0, at assets/js/checkout.js

144 lines 5.0 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) {
56 $streetfield.find('label').append(required);
57 }
58 if ($numberfield.find('label abbr').size() == 0) {
59 $numberfield.find('label').append(required);
60 }
61
62 /* Add validation required classes */
63 $streetfield.addClass('validate-required');
64 $numberfield.addClass('validate-required');
65 } else {
66 /* Hide custom NL fields */
67 $streetfield.hide();
68 $numberfield.hide();
69 $suffixfield.hide();
70
71 /* Unmark required fields */
72 $streetfield.find('label abbr').remove();
73 $numberfield.find('label abbr').remove();
74
75 /* Remove validation required classes */
76 $streetfield.removeClass('validate-required');
77 $numberfield.removeClass('validate-required');
78 }
79
80 if (typeof locale[country] != 'undefined') {
81 thislocale = locale[country];
82 } else {
83 thislocale = locale['default'];
84 }
85
86 /* Handle locale fields */
87 var locale_fields = {
88 address_1: '#billing_address_1_field, #shipping_address_1_field',
89 address_2: '#billing_address_2_field, #shipping_address_2_field',
90 };
91
92 $.each(locale_fields, function(key, value) {
93
94 var field = thisform.find(value);
95
96 if (thislocale[key]) {
97
98 if (thislocale[key]['label']) {
99 field.find('label').html(thislocale[key]['label']);
100 }
101
102 if (thislocale[key]['placeholder']) {
103 field.find('input').attr('placeholder', thislocale[key]['placeholder']);
104 }
105
106 field.find('label abbr').remove();
107
108 if (typeof thislocale[key]['required'] == 'undefined' && locale['default'][key]['required'] == true) {
109 field.find('label').append(required);
110 } else if (thislocale[key]['required'] == true) {
111 field.find('label').append(required);
112 }
113
114 if (key !== 'state') {
115 if (thislocale[key]['hidden'] == true) {
116 field.hide().find('input').val('');
117 } else {
118 field.show();
119 }
120 }
121 } else if (locale['default'][key]) {
122 if (locale['default'][key]['required'] == true) {
123 if (field.find('label abbr').size() == 0) {
124 field.find('label').append(required);
125 }
126 }
127 if (key !== 'state' && (typeof locale['default'][key]['hidden'] == 'undefined' || locale['default'][key]['hidden'] == false)) {
128 field.show();
129 }
130 }
131 });
132 })
133
134 /* Init trigger */
135 .bind('init_checkout', function() {
136 $('#billing_country, #shipping_country, .country_to_state').change();
137 });
138
139 /* Update on page load */
140 if (woocommerce_params.is_checkout == 1) {
141 $('body').trigger('init_checkout');
142 }
143 });
144