PluginProbe
CartFlows – Funnel Builder & Checkout Plugin for WooCommerce / 1.1.11
CartFlows – Funnel Builder & Checkout Plugin for WooCommerce v1.1.11
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.11, at assets/js/checkout-template.js

263 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 }
65 });
66 }
67
68 /**
69 * Billing and shipping field add class form-row-first and form-row-last
70 * To add those classes to change the layout of the field
71 */
72 var add_custom_class_address_field = function(){
73 // For Billing address fields.
74 var $get_checkout_style_layout = $('.cartflows-container').find('.wcf-embed-checkout-form-two-column'),
75 $get_bill_addr_field_one = $('.wcf-embed-checkout-form .woocommerce-checkout').find('#billing_address_1_field'),
76 $get_bill_addr_field_two = $('.wcf-embed-checkout-form .woocommerce-checkout').find('#billing_address_2_field');
77
78 if( $get_bill_addr_field_one.hasClass('form-row-wide') ){
79 $get_bill_addr_field_one.removeClass('form-row-wide');
80 $get_bill_addr_field_one.addClass('form-row-first');
81 }
82
83 if( $get_bill_addr_field_two.hasClass('form-row-wide') ){
84 $get_bill_addr_field_two.removeClass('form-row-wide');
85 $get_bill_addr_field_two.addClass('form-row-last');
86
87 if( $get_bill_addr_field_two.find('label').hasClass('screen-reader-text') ){
88
89 $get_bill_addr_field_two.addClass('mt20');
90 }else{
91 $get_bill_addr_field_two.removeClass('mt20');
92 }
93 }
94
95 // For Shipping address fields.
96 var $get_ship_addr_field_one = $('.wcf-embed-checkout-form .woocommerce-checkout').find('#shipping_address_1_field');
97 var $get_ship_addr_field_two = $('.wcf-embed-checkout-form .woocommerce-checkout').find('#shipping_address_2_field');
98 if( $get_ship_addr_field_one.hasClass('form-row-wide') ){
99 $get_ship_addr_field_one.removeClass('form-row-wide');
100 $get_ship_addr_field_one.addClass('form-row-first');
101 }
102
103 if( $get_ship_addr_field_two.hasClass('form-row-wide') ){
104 $get_ship_addr_field_two.removeClass('form-row-wide');
105 $get_ship_addr_field_two.addClass('form-row-last');
106
107 if( $get_ship_addr_field_two.find('label').hasClass('screen-reader-text') ){
108
109 $get_ship_addr_field_two.addClass('mt20');
110 }else{
111 $get_ship_addr_field_two.removeClass('mt20');
112 }
113 }
114
115 function address_fields_management( type ) {
116
117 var wrapper = $('.woocommerce-' + type + '-fields' );
118
119 setTimeout(function() {
120 var column_three = wrapper.find('.wcf-column-33');
121 column_three.css( 'clear', '' );
122 column_three.first().css( 'clear', 'left' );
123 // column_three.first().css( 'margin-right', '10px' );
124 // column_three.last().css( 'margin-left', '10px' );
125 }, 100);
126
127 setTimeout(function() {
128 var column_fifty = wrapper.find('.wcf-column-50');
129 column_fifty.css( 'clear', '' );
130 column_fifty.last().css( 'clear', 'left' );
131 }, 100);
132 }
133
134 // address_fields_management( 'billing' );
135 // address_fields_management( 'shipping' );
136
137 var billing_country = $('.wcf-embed-checkout-form .woocommerce-checkout').find('#billing_country');
138
139 billing_country.on( 'change', function(e) {
140
141 // address_fields_management( 'billing' );
142 } );
143
144 var shipping_country = $('.wcf-embed-checkout-form .woocommerce-checkout').find('#shipping_country');
145
146 shipping_country.on( 'change', function(e) {
147
148 // address_fields_management( 'shipping' );
149
150 } );
151 }
152
153 var wcf_check_is_local_storage = function(){
154 var test = 'test';
155 try {
156 localStorage.setItem(test, test);
157 localStorage.removeItem(test);
158 return true;
159 } catch(e) {
160 return false;
161 }
162 }
163
164 var wcf_persistent_data = function(){
165
166 if( 'yes' != cartflows.allow_persistance ){
167 return;
168 }
169
170 if ( false === wcf_check_is_local_storage() ) {
171 return;
172 }
173
174 var checkout_cust_form = 'form.woocommerce-checkout #customer_details';
175
176 var wcf_form_data = {
177 set : function (){
178
179 var checkout_data = [];
180 var checkout_form = $('form.woocommerce-checkout #customer_details');
181
182 localStorage.removeItem('cartflows_checkout_form');
183
184 checkout_form.find('input[type=text], select').each(function(){
185 checkout_data.push({ name: this.name, value: this.value});
186 });
187
188 cartflows_checkout_form = JSON.stringify(checkout_data);
189 localStorage.setItem('cartflows_checkout_form', cartflows_checkout_form);
190 },
191 get : function (){
192
193
194 if( localStorage.getItem('cartflows_checkout_form') != null ){
195
196 checkout_data = JSON.parse( localStorage.getItem('cartflows_checkout_form') );
197
198 for (var i = 0; i < checkout_data.length; i++) {
199 $('form.woocommerce-checkout [name='+checkout_data[i].name+']').val(checkout_data[i].value);
200 }
201 }
202 }
203 }
204
205 wcf_form_data.get();
206
207 $( checkout_cust_form + " input, " + checkout_cust_form + " select").change( function() {
208 wcf_form_data.set();
209 });
210 }
211
212
213 $(document).ready(function($) {
214
215 wcf_persistent_data();
216
217 //wcf_reload_checkout_on_return();
218
219 wcf_custom_field_validation();
220
221 add_custom_class_address_field();
222
223 });
224
225 $(window).load(function(){
226 $( 'body' ).trigger( 'update_checkout' );
227 });
228
229
230 var cf_checkout_coupons = {
231
232 init: function() {
233 $( document.body ).on( 'click', '.cf-submit-coupon', this.submit_coupon );
234 },
235
236 submit_coupon: function( e ) {
237
238 e.preventDefault();
239
240 var data = {
241 coupon_code: $(this).closest('.wcf-custom-coupon-field').find('.cf-coupon-code-input').val(),
242 action: 'cf_woo_apply_coupon',
243 security: cartflows.cf_validate_coupon_nonce
244 };
245
246 $.ajax({
247 type: 'POST',
248 url: cartflows.ajax_url,
249 data: data,
250 success: function( code ) {
251
252 if( code ) {
253 $( document.body ).trigger( 'update_checkout', { update_shipping_method: false } );
254 }
255 }
256 });
257 }
258 }
259
260 cf_checkout_coupons.init();
261
262 })(jQuery);
263