PluginProbe
CartFlows – Funnel Builder & Checkout Plugin for WooCommerce / 1.1.13
CartFlows – Funnel Builder & Checkout Plugin for WooCommerce v1.1.13
3.3.0 3.2.1 3.2.0 3.1.4 3.1.3 3.1.2 3.1.1 3.1.0 3.0.1 trunk 1.0.4 1.1.0 1.1.0.1 1.1.1 1.1.10 1.1.11 1.1.12 1.1.13 1.1.14 1.1.15 1.1.16 1.1.17 1.1.18 1.1.19 1.1.2 All 162 releases
cartflows / assets / js / checkout-template.js

checkout-template.js in CartFlows – Funnel Builder & Checkout Plugin for WooCommerce 1.1.13, at assets/js/checkout-template.js

265 lines 7.2 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 (function($){
2
3 var wcf_reload_checkout_on_return = function() {
4
5 var vis = (function(){
6 var stateKey, eventKey, keys = {
7 hidden: "visibilitychange",
8 webkitHidden: "webkitvisibilitychange",
9 mozHidden: "mozvisibilitychange",
10 msHidden: "msvisibilitychange"
11 };
12 for (stateKey in keys) {
13 if (stateKey in document) {
14 eventKey = keys[stateKey];
15 break;
16 }
17 }
18 return function(c) {
19 if (c) document.addEventListener(eventKey, c);
20 return !document[stateKey];
21 }
22 })();
23
24 var visible = vis(); // gives current state
25
26 vis(function(){
27
28 if ( vis() ) {
29 location.reload();
30 }
31 });
32 }
33
34
35 var wcf_show_loader = function() {
36 $('.wcf-loader-bg').addClass('show');
37
38 }
39
40 var wcf_hide_loader = function() {
41 $('.wcf-loader-bg').removeClass('show');
42
43 }
44
45 /**
46 * Checkout Custom Field Validations
47 * This will collect all the present fields in the woocommerce form and adds an class if the field
48 * is blank
49 */
50 var wcf_custom_field_validation = function(){
51
52 var $inputs = $('form.woocommerce-checkout').find('input');
53
54 $inputs.blur(function(){
55 var $this = $(this),
56 field_id = $this.attr('id'),
57 field_value = $this.val();
58
59 if ( field_value == '')
60 {
61 if( field_id != 'billing_company' && field_id != 'billing_address_2' && field_id != 'shipping_company' && field_id != 'shipping_address_2'){
62 $this.addClass('field-required');
63 }
64 }else{
65 $this.removeClass('field-required');
66 }
67 });
68 }
69
70 /**
71 * Billing and shipping field add class form-row-first and form-row-last
72 * To add those classes to change the layout of the field
73 */
74 var add_custom_class_address_field = function(){
75 // For Billing address fields.
76 var $get_checkout_style_layout = $('.cartflows-container').find('.wcf-embed-checkout-form-two-column'),
77 $get_bill_addr_field_one = $('.wcf-embed-checkout-form .woocommerce-checkout').find('#billing_address_1_field'),
78 $get_bill_addr_field_two = $('.wcf-embed-checkout-form .woocommerce-checkout').find('#billing_address_2_field');
79
80 if( $get_bill_addr_field_one.hasClass('form-row-wide') ){
81 $get_bill_addr_field_one.removeClass('form-row-wide');
82 $get_bill_addr_field_one.addClass('form-row-first');
83 }
84
85 if( $get_bill_addr_field_two.hasClass('form-row-wide') ){
86 $get_bill_addr_field_two.removeClass('form-row-wide');
87 $get_bill_addr_field_two.addClass('form-row-last');
88
89 if( $get_bill_addr_field_two.find('label').hasClass('screen-reader-text') ){
90
91 $get_bill_addr_field_two.addClass('mt20');
92 }else{
93 $get_bill_addr_field_two.removeClass('mt20');
94 }
95 }
96
97 // For Shipping address fields.
98 var $get_ship_addr_field_one = $('.wcf-embed-checkout-form .woocommerce-checkout').find('#shipping_address_1_field');
99 var $get_ship_addr_field_two = $('.wcf-embed-checkout-form .woocommerce-checkout').find('#shipping_address_2_field');
100 if( $get_ship_addr_field_one.hasClass('form-row-wide') ){
101 $get_ship_addr_field_one.removeClass('form-row-wide');
102 $get_ship_addr_field_one.addClass('form-row-first');
103 }
104
105 if( $get_ship_addr_field_two.hasClass('form-row-wide') ){
106 $get_ship_addr_field_two.removeClass('form-row-wide');
107 $get_ship_addr_field_two.addClass('form-row-last');
108
109 if( $get_ship_addr_field_two.find('label').hasClass('screen-reader-text') ){
110
111 $get_ship_addr_field_two.addClass('mt20');
112 }else{
113 $get_ship_addr_field_two.removeClass('mt20');
114 }
115 }
116
117 function address_fields_management( type ) {
118
119 var wrapper = $('.woocommerce-' + type + '-fields' );
120
121 setTimeout(function() {
122 var column_three = wrapper.find('.wcf-column-33');
123 column_three.css( 'clear', '' );
124 column_three.first().css( 'clear', 'left' );
125 // column_three.first().css( 'margin-right', '10px' );
126 // column_three.last().css( 'margin-left', '10px' );
127 }, 100);
128
129 setTimeout(function() {
130 var column_fifty = wrapper.find('.wcf-column-50');
131 column_fifty.css( 'clear', '' );
132 column_fifty.last().css( 'clear', 'left' );
133 }, 100);
134 }
135
136 // address_fields_management( 'billing' );
137 // address_fields_management( 'shipping' );
138
139 var billing_country = $('.wcf-embed-checkout-form .woocommerce-checkout').find('#billing_country');
140
141 billing_country.on( 'change', function(e) {
142
143 // address_fields_management( 'billing' );
144 } );
145
146 var shipping_country = $('.wcf-embed-checkout-form .woocommerce-checkout').find('#shipping_country');
147
148 shipping_country.on( 'change', function(e) {
149
150 // address_fields_management( 'shipping' );
151
152 } );
153 }
154
155 var wcf_check_is_local_storage = function(){
156 var test = 'test';
157 try {
158 localStorage.setItem(test, test);
159 localStorage.removeItem(test);
160 return true;
161 } catch(e) {
162 return false;
163 }
164 }
165
166 var wcf_persistent_data = function(){
167
168 if( 'yes' != cartflows.allow_persistance ){
169 return;
170 }
171
172 if ( false === wcf_check_is_local_storage() ) {
173 return;
174 }
175
176 var checkout_cust_form = 'form.woocommerce-checkout #customer_details';
177
178 var wcf_form_data = {
179 set : function (){
180
181 var checkout_data = [];
182 var checkout_form = $('form.woocommerce-checkout #customer_details');
183
184 localStorage.removeItem('cartflows_checkout_form');
185
186 checkout_form.find('input[type=text], select').each(function(){
187 checkout_data.push({ name: this.name, value: this.value});
188 });
189
190 cartflows_checkout_form = JSON.stringify(checkout_data);
191 localStorage.setItem('cartflows_checkout_form', cartflows_checkout_form);
192 },
193 get : function (){
194
195
196 if( localStorage.getItem('cartflows_checkout_form') != null ){
197
198 checkout_data = JSON.parse( localStorage.getItem('cartflows_checkout_form') );
199
200 for (var i = 0; i < checkout_data.length; i++) {
201 $('form.woocommerce-checkout [name='+checkout_data[i].name+']').val(checkout_data[i].value);
202 }
203 }
204 }
205 }
206
207 wcf_form_data.get();
208
209 $( checkout_cust_form + " input, " + checkout_cust_form + " select").change( function() {
210 wcf_form_data.set();
211 });
212 }
213
214
215 $(document).ready(function($) {
216
217 wcf_persistent_data();
218
219 //wcf_reload_checkout_on_return();
220
221 wcf_custom_field_validation();
222
223 add_custom_class_address_field();
224
225 });
226
227 $(window).load(function(){
228 $( 'body' ).trigger( 'update_checkout' );
229 });
230
231
232 var cf_checkout_coupons = {
233
234 init: function() {
235 $( document.body ).on( 'click', '.cf-submit-coupon', this.submit_coupon );
236 },
237
238 submit_coupon: function( e ) {
239
240 e.preventDefault();
241
242 var data = {
243 coupon_code: $(this).closest('.wcf-custom-coupon-field').find('.cf-coupon-code-input').val(),
244 action: 'cf_woo_apply_coupon',
245 security: cartflows.cf_validate_coupon_nonce
246 };
247
248 $.ajax({
249 type: 'POST',
250 url: cartflows.ajax_url,
251 data: data,
252 success: function( code ) {
253
254 if( code ) {
255 $( document.body ).trigger( 'update_checkout', { update_shipping_method: false } );
256 }
257 }
258 });
259 }
260 }
261
262 cf_checkout_coupons.init();
263
264 })(jQuery);
265