1jQuery(document).ready(function($) { 2 3 var formid; 4 var formid_long; 5 var amount_total; 6 var default_symbol; 7 8 // for redirect method 1 9 document.addEventListener('wpcf7mailsent', function( event ) { 10 var id_long = event.detail.id; 11 var id = event.detail.contactFormId; 12 13 var formid = id_long; 14 var formid = id; 15 16 var forms = ajax_object_cf7pp.forms; 17 var result_paypal = forms.indexOf(id+'|paypal'); 18 var result_stripe = forms.indexOf(id+'|stripe'); 19 var path = ajax_object_cf7pp.path+id; 20 21 22 var gateway; 23 24 var data = { 25 'action': 'cf7pp_get_form_post', 26 }; 27 28 jQuery.ajax({ 29 type: "GET", 30 data: data, 31 dataType: "json", 32 async: false, 33 url: ajax_object_cf7pp.ajax_url, 34 xhrFields: { 35 withCredentials: true 36 }, 37 success: function (response) { 38 gateway = response.gateway; 39 amount_total = response.amount_total; 40 default_symbol = response.default_symbol; 41 } 42 }); 43 44 45 // gateway chooser 46 if (gateway != null) { 47 // paypal 48 if (result_paypal > -1 && gateway == 'paypal') { 49 window.location.href = path; 50 } 51 52 // stripe 53 if (result_stripe > -1 && gateway == 'stripe') { 54 55 var data = { 56 'action': 'cf7pp_get_form_stripe', 57 }; 58 59 jQuery.ajax({ 60 type: "GET", 61 data: data, 62 dataType: "json", 63 async: false, 64 url: ajax_object_cf7pp.ajax_url, 65 xhrFields: { 66 withCredentials: true 67 }, 68 success: function (response) { 69 70 jQuery('#'+id_long).html(response.html); 71 72 } 73 }); 74 75 } 76 } else { 77 // no gateway chooser 78 if (result_paypal > -1) { 79 window.location.href = path; 80 } 81 82 // stripe 83 if (result_stripe > -1) { 84 85 var data = { 86 'action': 'cf7pp_get_form_stripe', 87 }; 88 89 jQuery.ajax({ 90 type: "GET", 91 data: data, 92 dataType: "json", 93 async: false, 94 url: ajax_object_cf7pp.ajax_url, 95 xhrFields: { 96 withCredentials: true 97 }, 98 success: function (response) { 99 100 jQuery('#'+id_long).html(response.html); 101 102 } 103 }); 104 105 } 106 } 107 108 }, false ); 109 110 111 112 113 114 115 116 // for redirect method 2 - with WPCF7_LOAD_JS off 117 if (jQuery('.wpcf7-mail-sent-ok')[0]){ 118 119 var id_long = jQuery('.wpcf7-mail-sent-ok').closest('.wpcf7').attr("id"); 120 var id = id_long.split('f').pop().split('-').shift(); 121 122 var formid = id_long; 123 var formid = id; 124 125 var forms = ajax_object_cf7pp.forms; 126 var result_paypal = forms.indexOf(id+'|paypal'); 127 var result_stripe = forms.indexOf(id+'|stripe'); 128 var path = ajax_object_cf7pp.path+id; 129 130 var gateway; 131 132 var data = { 133 'action': 'cf7pp_get_form_post', 134 }; 135 136 jQuery.ajax({ 137 type: "GET", 138 data: data, 139 dataType: "json", 140 async: false, 141 url: ajax_object_cf7pp.ajax_url, 142 xhrFields: { 143 withCredentials: true 144 }, 145 success: function (response) { 146 gateway = response.gateway; 147 amount_total = response.amount_total; 148 default_symbol = response.default_symbol; 149 } 150 }); 151 152 153 154 // gateway chooser 155 if (gateway != null) { 156 // paypal 157 if (result_paypal > -1 && gateway == 'paypal') { 158 window.location.href = path; 159 } 160 161 // stripe 162 if (result_stripe > -1 && gateway == 'stripe') { 163 164 var data = { 165 'action': 'cf7pp_get_form_stripe', 166 }; 167 168 jQuery.ajax({ 169 type: "GET", 170 data: data, 171 dataType: "json", 172 async: false, 173 url: ajax_object_cf7pp.ajax_url, 174 xhrFields: { 175 withCredentials: true 176 }, 177 success: function (response) { 178 179 jQuery('#'+id_long).html(response.html); 180 181 } 182 }); 183 184 } 185 } else { 186 // no gateway chooser 187 if (result_paypal > -1) { 188 window.location.href = path; 189 } 190 191 // stripe 192 if (result_stripe > -1) { 193 194 var data = { 195 'action': 'cf7pp_get_form_stripe', 196 }; 197 198 jQuery.ajax({ 199 type: "GET", 200 data: data, 201 dataType: "json", 202 async: false, 203 url: ajax_object_cf7pp.ajax_url, 204 xhrFields: { 205 withCredentials: true 206 }, 207 success: function (response) { 208 209 jQuery('#'+id_long).html(response.html); 210 211 } 212 }); 213 214 } 215 } 216 217 218 219 }; 220 221 222 223 224 // stripe payment form 225 226 // method 1 227 jQuery(document).ajaxComplete(function() { 228 cf7pp_load_stripe(); 229 }); 230 231 // method 2 232 if (jQuery('.cf7pp_stripe').length ) { 233 cf7pp_load_stripe(); 234 }; 235 236 237 238 239 function cf7pp_load_stripe () { 240 if (jQuery('.cf7pp_stripe').length ) { 241 var stripe = Stripe(ajax_object_cf7pp.stripe_key); 242 243 var elements = stripe.elements(); 244 245 var elementClasses = { 246 base: 'cf7pp_details_input', 247 focus: 'focus', 248 empty: 'empty', 249 invalid: 'invalid', 250 }; 251 252 var cardNumber = elements.create('cardNumber', { 253 classes: elementClasses, 254 placeholder: "\u2022\u2022\u2022\u2022 \u2022\u2022\u2022\u2022 \u2022\u2022\u2022\u2022 \u2022\u2022\u2022\u2022", 255 }); 256 cardNumber.mount('#cf7pp_stripe_credit_card_number'); 257 258 var cardExpiry = elements.create('cardExpiry', { 259 classes: elementClasses, 260 placeholder: "\u2022\u2022 / \u2022\u2022", 261 }); 262 cardExpiry.mount('#cf7pp_stripe_credit_card_expiration'); 263 264 var cardCvc = elements.create('cardCvc', { 265 classes: elementClasses, 266 placeholder: "\u2022\u2022\u2022", 267 }); 268 cardCvc.mount('#cf7pp_stripe_credit_card_csv'); 269 270 var cardPostalCode = elements.create('postalCode', { 271 classes: elementClasses, 272 placeholder: "\u2022\u2022\u2022\u2022\u2022", 273 }); 274 cardPostalCode.mount('#cf7pp_stripe_credit_card_zip'); 275 276 277 278
279 // Handle real-time validation errors from the card Element. 280 cardNumber.addEventListener('change', function(event) { 281 282 var displayError = document.getElementById('card-errors'); 283 284 if (event.error) { 285 displayError.textContent = event.error.message; 286 } else { 287 displayError.textContent = ''; 288 } 289 290 }); 291 292 cardExpiry.addEventListener('change', function(event) { 293 294 var displayError = document.getElementById('card-errors'); 295 296 if (event.error) { 297 displayError.textContent = event.error.message; 298 } else { 299 displayError.textContent = ''; 300 } 301 302 }); 303 304 cardCvc.addEventListener('change', function(event) { 305 306 var displayError = document.getElementById('card-errors'); 307 308 if (event.error) { 309 displayError.textContent = event.error.message; 310 } else { 311 displayError.textContent = ''; 312 } 313 314 }); 315 316 cardPostalCode.addEventListener('change', function(event) { 317 318 var displayError = document.getElementById('card-errors'); 319 320 if (event.error) { 321 displayError.textContent = event.error.message; 322 } else { 323 displayError.textContent = ''; 324 } 325 326 }); 327 328 329 330 331 332 333 334 // Handle form submission 335 336 var form = document.getElementById('cf7pp-payment-form'); 337 338 form.addEventListener('submit', function(event) { 339 340 341 // id get lost using method 1, so we need to get it again 342 var id_long = jQuery('.cf7pp_stripe').closest('.wpcf7').attr("id"); 343 var formid = id_long.split('f').pop().split('-').shift(); 344 345 346 // disable submit button 347 jQuery('#stripe-submit').attr("disabled", "disabled"); 348 jQuery('#stripe-submit').val(ajax_object_cf7pp.processing); 349 350 event.preventDefault(); 351 352 stripe.createToken(cardNumber).then(function(result) { 353 if (result.error) { 354 355 356 // Inform the user if there was an error 357 var errorElement = document.getElementById('card-errors'); 358 errorElement.textContent = result.error.message; 359 360 // undisable submit button 361 jQuery('#stripe-submit').removeAttr("disabled"); 362 var button_text = ajax_object_cf7pp.pay+" "+default_symbol+amount_total; 363 jQuery('#stripe-submit').val(button_text); 364 } else { 365 // Send the token to your server 366 367 var data = { 368 'action': 'cf7pp_stripe_charge', 369 'token': result.token, 370 'nonce': jQuery('#cf7pp_stripe_nonce').val(), 371 'id': formid, 372 }; 373 374 jQuery.ajax({ 375 type: "POST", 376 data: data, 377 dataType: "json", 378 url: ajax_object_cf7pp.ajax_url, 379 xhrFields: { 380 withCredentials: true 381 }, 382 success: function (result) { 383 384 if (result.response == 'completed') { 385 386 jQuery('#'+id_long).html(result.html_success); 387 388 } else { 389 // undisable submit button 390 jQuery('#card-errors').html(ajax_object.failed); 391 jQuery('#stripe-submit').removeAttr("disabled"); 392 var button_text = ajax_object.pay+" "+default_symbol+amount_total; 393 jQuery('#stripe-submit').val(button_text); 394 } 395 396 397 } 398 }); 399 } 400 }); 401 402 }); 403 404 }; 405 }; 406 407 408 409 410 411 412 413});
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.