1jQuery(function($){ 2 3 4 jQuery.validator.addMethod("customemail", 5 function(value, element) { 6 var pattern = new RegExp(/^[+a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,4}$/i); 7 return pattern.test(value); 8 }, 9 "Please enter valid email" 10 ); 11 jQuery( 'body' ).on( 'keydown', '#creditCard',function() { 12 jQuery('#creditCard').payform('formatCardNumber'); 13 var tmpval = $(this).val(); 14 if(tmpval.trim().length == 1) { 15 jQuery("#card_type").removeClass(); 16 jQuery("#card_type").addClass('card-icons'); 17 } 18 if($.payform.parseCardType(jQuery('#creditCard').val()) && tmpval.trim().length > 1) 19 { 20 jQuery("#card_type").addClass($.payform.parseCardType(jQuery('#creditCard').val())+ '-card'); 21 } 22 23 }); 24 25 jQuery( 'body' ).on( 'focusout','#creditCard', function() { 26 var tmpval = $(this).val(); 27 if(tmpval.trim().length == 0) { 28 jQuery("#card_type").removeClass(); 29 jQuery("#card_type").addClass('card-icons'); 30 } 31 if($.payform.parseCardType(jQuery('#creditCard').val()) && tmpval.trim().length > 1) 32 { 33 jQuery("#card_type").addClass($.payform.parseCardType(jQuery('#creditCard').val())+ '-card'); 34 } 35 36 }); 37 38 39 40 jQuery( 'body' ).on( 'keydown', '#expdate',function() { 41 jQuery('#expdate').payform('formatCardExpiry'); 42 }); 43 jQuery( 'body' ).on( 'keydown', '#cvv',function() { 44 jQuery('#cvv').payform('formatCardCVC'); 45 }); 46 47 48 49 var checkout_form = $( 'form.woocommerce-checkout' ); 50 51 // jQuery.validator.methods.matches = function( value, element, params ) { 52 // console.log(value); 53 // const regex = /^[0-9()+. -]{10,16}$/; 54 // return regex.exec(value); 55 // } 56 57 jQuery.validator.addMethod("expiry_mm_yy", function(value, element) { 58 var sections = value.split('/'); 59 if (sections.length !== 2) { 60 return false; 61 } 62 var year = parseInt(sections[1], 10), 63 month = parseInt(sections[0], 10), 64 currentMonth = new Date().getMonth() + 1, 65 currentYear = new Date().getFullYear().toString().substr(-2); 66 if (month <= 0 || month > 12 || year > currentYear + 10) { 67 console.log('Not valid'); 68 return false 69 } 70 71 if (year < currentYear || (year == currentYear && month < currentMonth)) { 72 console.log('Expired'); 73 // The date is expired 74 return false; 75 } 76 77 return true; 78 }, "The expiration date is not valid"); 79 jQuery( 'form.checkout' ).on( 'checkout_place_order', function() { 80 81 $( 'form.woocommerce-checkout' ).validate({ 82 rules: { 83 billing_first_name: "required", 84 term: "required", 85 billing_last_name: "required", 86 billing_address_1 : "required", 87 billing_city : "required", 88 billing_country: { 89 required: true 90 }, 91 billing_state: { required: true }, 92 billing_postcode : "required", 93 billing_phone : {required: true, maxlength: 12,minlength: 10}, 94 order_comments : {maxlength: 1000}, 95 billing_email : {required: true,email: true}, 96 friend_shipping_email: 97 { 98 required:function(element) 99 { 100 if(is_digital.is_digital || buy_and_gift.buy_and_gift > 0) 101 { 102 return true; 103 } 104 //return true; 105 }, 106 customemail: { 107 depends: function(element) { 108 return jQuery("input[name=friend_shipping_email]").length; 109 } 110 } 111 }, 112 shipping_first_name: 113 { 114 required:function(element) 115 { 116 return ((jQuery('#ship-to-different-address-checkbox').is(':checked') || jQuery('#gift_to_subs').is(':checked')) || buy_and_gift.buy_and_gift > 0) 117 } 118 }, 119 shipping_last_name: 120 { 121 required:function(element) 122 { 123 return ((jQuery('#ship-to-different-address-checkbox').is(':checked') || jQuery('#gift_to_subs').is(':checked')) || buy_and_gift.buy_and_gift > 0 ) 124 } 125 }, 126 shipping_address_1: 127 { 128 required:function(element) 129 { 130 return ((jQuery('#ship-to-different-address-checkbox').is(':checked') || jQuery('#gift_to_subs').is(':checked')) || buy_and_gift.buy_and_gift > 0 ) 131 } 132 }, 133 shipping_city: 134 { 135 required:function(element) 136 { 137 return ((jQuery('#ship-to-different-address-checkbox').is(':checked') || jQuery('#gift_to_subs').is(':checked')) || buy_and_gift.buy_and_gift > 0 ) 138 } 139 }, 140 shipping_state: 141 { 142 required:function(element) 143 { 144 return ((jQuery('#ship-to-different-address-checkbox').is(':checked') || jQuery('#gift_to_subs').is(':checked')) || buy_and_gift.buy_and_gift > 0 ) 145 } 146 }, 147 shipping_country: 148 { 149 required:function(element) 150 { 151 return ((jQuery('#ship-to-different-address-checkbox').is(':checked') || jQuery('#gift_to_subs').is(':checked')) || buy_and_gift.buy_and_gift > 0 ) 152 } 153 }, 154 shipping_postcode: 155 { 156 required:function(element) 157 { 158 return ((jQuery('#ship-to-different-address-checkbox').is(':checked') || jQuery('#gift_to_subs').is(':checked')) || buy_and_gift.buy_and_gift > 0 ) 159 } 160 }, 161 creditCard :{ 162 required : { 163 depends: function(element) 164 { 165 if(!jQuery('#payment_method_eh_paypal_express').is(':checked')){ 166 if ($('input[name=added_card]').length) 167 { 168 var value = jQuery( 'input[name=added_card]:checked' ).val(); 169 if(value == 'new_pay') 170 { 171 return true; 172 } 173 else 174 { 175 return false;
176 } 177 } 178 else 179 { 180 return true; 181 } 182 }else{ 183 return false; 184 } 185 } 186 } 187 }, 188 expdate :{ 189 required : { 190 depends: function(element) { 191 if(jQuery('#payment_method_eh_paypal_express').is(':checked')){ 192 if ($('input[name=added_card]').length) { 193 var value = jQuery( 'input[name=added_card]:checked' ).val(); 194 195 if(value == 'new_pay') 196 { 197 return true; 198 } 199 else 200 { 201 return false; 202 } 203 } 204 else 205 { 206 return true; 207 } 208 }else{ 209 return false; 210 } 211 } 212 }, 213 expiry_mm_yy : { 214 depends: function(element) { 215 if(!jQuery('#payment_method_eh_paypal_express').is(':checked')){ 216 if ($('input[name=added_card]').length) { 217 var value = jQuery( 'input[name=added_card]:checked' ).val(); 218 219 if(value == 'new_pay') 220 { 221 return true; 222 } 223 else 224 { 225 return false; 226 } 227 } 228 else 229 { 230 return true; 231 } 232 }else{ 233 return false; 234 } 235 } 236 } 237 238 }, 239 cvv :{ 240 required : { 241 depends: function(element) { 242 var value = jQuery('#payment_method_eh_paypal_express').is(':checked'); 243 if(value) 244 { 245 return false; 246 } 247 else 248 { 249 return true; 250 } 251 252 } 253 }, 254 minlength: 3, 255 } 256 }, 257 messages: { 258 billing_first_name: "Please enter first name", 259 billing_last_name: "Please enter last name", 260 term : "Please accept Terms and Conditions to continue", 261 billing_address_1 : "Please enter address", 262 billing_city : "Please enter city", 263 billing_postcode : "Please enter Zip", 264 billing_country : { required: "Please select country" }, 265 billing_phone : {required: "Please enter phone",maxlength: "Please enter valid phone",minlength: "Please enter valid phone"}, 266 billing_email : {required: "Please enter email",email: "Please enter valid email"}, 267 shipping_first_name: "Please enter first name", 268 shipping_last_name: "Please enter last name", 269 shipping_address_1: "Please enter address", 270 shipping_city: "Please enter city", 271 shipping_postcode: "Please enter Zip", 272 273 creditCard: {required: "Please enter card number"}, 274 expdate: {required: "Please enter expiry date"}, 275 friend_shipping_email : 276 { 277 required: "Please enter recipientâs email", 278 email : "Please enter valid email", 279 }, 280 cvv: {required: "Please enter CVV", minlength : "Please enter valid cvv"}, 281 282 }, 283 errorPlacement: function (error, element) { 284 if (element.attr("name") == "term") { 285 error.appendTo($('.term_error')); 286 //error.insertAfter($(element).parents('div').prev($('.question'))); 287 } 288 else if(element.attr("name") == "billing_country") 289 { 290 error.appendTo($(element).parent('span')); 291 } 292 else { 293 // something else if it's not a checkbox 294 error.insertAfter(element); 295 } 296 }, 297 invalidHandler: function(form, validator) { 298 var errors = validator.numberOfInvalids(); 299 if (errors) { 300 validator.errorList[0].element.focus(); 301 } 302 } 303 }); 304 if(!checkout_form.valid()) 305 { 306 if(!jQuery('#payment_method_eh_paypal_express').is(':checked')){ 307 if(jQuery('#card-element').hasClass('StripeElement--empty')) 308 { 309 jQuery("#card-element").next(".error").remove(); 310 jQuery( "<div class=\"error\">Please enter Card Number</div>" ).insertAfter( "#card-element"); 311 } 312 if(jQuery('#card_expiry').hasClass('StripeElement--empty')) 313 { 314 jQuery("#card_expiry").next(".error").remove(); 315 jQuery( "<div class=\"error\">Please enter expiry date</div>" ).insertAfter( "#card_expiry"); 316 } 317 if(jQuery('#card_cvc').hasClass('StripeElement--empty')) 318 { 319 jQuery("#card_cvc").next(".error").remove(); 320 jQuery( "<div class=\"error\">Please enter CVV</div>" ).insertAfter( "#card_cvc"); 321 } 322 return false;
323 }else{ 324 return checkout_form.valid(); 325 } 326 } 327 else 328 { 329 if(jQuery('input[type=radio][name=added_card]').length == 0) 330 { 331 if(!jQuery('#payment_method_eh_paypal_express').is(':checked')){ 332 if(jQuery('#card-element').hasClass('StripeElement--empty')) 333 { 334 jQuery("#card-element").next(".error").remove(); 335 jQuery( "<div class=\"error\">Please enter Card Number</div>" ).insertAfter( "#card-element"); 336 return false; 337 } 338 if(jQuery('#card_expiry').hasClass('StripeElement--empty')) 339 { 340 jQuery("#card_expiry").next(".error").remove(); 341 jQuery( "<div class=\"error\">Please enter expiry date</div>" ).insertAfter( "#card_expiry"); 342 return false; 343 } 344 if(jQuery('#card_cvc').hasClass('StripeElement--empty')) 345 { 346 jQuery("#card_cvc").next(".error").remove(); 347 jQuery( "<div class=\"error\">Please enter CVV</div>" ).insertAfter( "#card_cvc"); 348 return false; 349 } 350 if(jQuery('#card-element').hasClass('StripeElement--invalid') || jQuery('#card_expiry').hasClass('StripeElement--invalid') || jQuery('#card_cvc').hasClass('StripeElement--invalid')) 351 { 352 return false; 353 } 354 if (jQuery('#isSubmit').length > 0) { 355 jQuery("#isSubmit").remove(); 356 return true; 357 } 358 else 359 { 360 createToken(); 361 return false; 362 } 363 } 364 365 366 } 367 else 368 { 369 var value = jQuery( 'input[name=added_card]:checked' ).val(); 370 if(value == 'new_pay') 371 { 372 if(!jQuery('#payment_method_eh_paypal_express').is(':checked')){ 373 if(jQuery('#card-element').hasClass('StripeElement--empty')) 374 { 375 jQuery("#card-element").next(".error").remove(); 376 jQuery( "<div class=\"error\">Please enter Card Number</div>" ).insertAfter( "#card-element"); 377 return false; 378 } 379 if(jQuery('#card_expiry').hasClass('StripeElement--empty')) 380 { 381 jQuery("#card_expiry").next(".error").remove(); 382 jQuery( "<div class=\"error\">Please enter expiry date</div>" ).insertAfter( "#card_expiry"); 383 return false; 384 } 385 if(jQuery('#card_cvc').hasClass('StripeElement--empty')) 386 { 387 jQuery("#card_cvc").next(".error").remove(); 388 jQuery( "<div class=\"error\">Please enter CVV</div>" ).insertAfter( "#card_cvc"); 389 return false; 390 } 391 if(jQuery('#card-element').hasClass('StripeElement--invalid') || jQuery('#card_expiry').hasClass('StripeElement--invalid') || jQuery('#card_cvc').hasClass('StripeElement--invalid')) 392 { 393 return false; 394 } 395 if (jQuery('#isSubmit').length > 0) { 396 jQuery("#isSubmit").remove(); 397 return true; 398 } 399 else 400 { 401 createToken(); 402 return false;
403 } 404 } 405 } 406 return true; 407 } 408 409 410 } 411 412 }); 413 414 jQuery( document ).on( "click", ".sum", function() { 415 var value = $( 'input[name=added_card]:checked' ).val(); 416 if(value == 'new_pay') 417 { 418 document.getElementById('card_details').style.display = 'block'; 419 } 420 else 421 { 422 document.getElementById('card_details').style.display = 'none' 423 } 424 425 }); 426 427}); 428 429
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.