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

245 lines 6.6 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-form-col-3');
121 column_three.css( 'clear', '' );
122 column_three.first().css( 'clear', 'left' );
123 }, 100);
124 }
125
126 address_fields_management( 'billing' );
127 address_fields_management( 'shipping' );
128
129 var billing_country = $('.wcf-embed-checkout-form .woocommerce-checkout').find('#billing_country');
130
131 billing_country.on( 'change', function(e) {
132
133 address_fields_management( 'billing' );
134 } );
135
136 var shipping_country = $('.wcf-embed-checkout-form .woocommerce-checkout').find('#shipping_country');
137
138 shipping_country.on( 'change', function(e) {
139
140 address_fields_management( 'shipping' );
141
142 } );
143 }
144
145 var wcf_check_is_local_storage = function(){
146 var test = 'test';
147 try {
148 localStorage.setItem(test, test);
149 localStorage.removeItem(test);
150 return true;
151 } catch(e) {
152 return false;
153 }
154 }
155
156 var wcf_persistent_data = function(){
157
158 if ( false === wcf_check_is_local_storage() ) {
159 return;
160 }
161
162 var wcf_form_data = {
163 set : function (){
164
165 var checkout_data = [];
166 var checkout_form = $('form.woocommerce-checkout');
167
168 localStorage.removeItem('cartflows_checkout_form');
169
170 checkout_form.find('input[type=text], select').each(function(){
171 checkout_data.push({ name: this.name, value: this.value});
172 });
173
174 cartflows_checkout_form = JSON.stringify(checkout_data);
175 localStorage.setItem('cartflows_checkout_form', cartflows_checkout_form);
176 },
177 get : function (){
178
179
180 if( localStorage.getItem('cartflows_checkout_form') != null ){
181
182 checkout_data = JSON.parse( localStorage.getItem('cartflows_checkout_form') );
183
184 for (var i = 0; i < checkout_data.length; i++) {
185 $('form.woocommerce-checkout [name='+checkout_data[i].name+']').val(checkout_data[i].value);
186 }
187 }
188 }
189 }
190
191 wcf_form_data.get();
192
193 $("form.woocommerce-checkout input, form.woocommerce-checkout select").change( function() {
194 wcf_form_data.set();
195 });
196 }
197
198
199 $(document).ready(function($) {
200
201 wcf_persistent_data();
202
203 //wcf_reload_checkout_on_return();
204
205 wcf_custom_field_validation();
206
207 add_custom_class_address_field();
208
209 });
210
211
212 var cf_checkout_coupons = {
213
214 init: function() {
215 $( document.body ).on( 'click', '.cf-submit-coupon', this.submit_coupon );
216 },
217
218 submit_coupon: function( e ) {
219
220 e.preventDefault();
221
222 var data = {
223 coupon_code: $(this).closest('.wcf-custom-coupon-field').find('.cf-coupon-code-input').val(),
224 action: 'cf_woo_apply_coupon',
225 security: cartflows.cf_validate_coupon_nonce
226 };
227
228 $.ajax({
229 type: 'POST',
230 url: cartflows.ajax_url,
231 data: data,
232 success: function( code ) {
233
234 if( code ) {
235 $( document.body ).trigger( 'update_checkout', { update_shipping_method: false } );
236 }
237 }
238 });
239 }
240 }
241
242 cf_checkout_coupons.init();
243
244 })(jQuery);
245