1jQuery(document).ready(function () { 2 3 jQuery("#fb-check").on("click", function (e) { 4 jQuery(this).next().toggleClass('label-checkbox'); 5 jQuery(".facebook").toggle(this.checked); 6 }); 7 8 jQuery("#tiktok-check").on("click", function (e) { 9 jQuery(this).next().toggleClass('label-checkbox'); 10 jQuery(".tiktok").toggle(this.checked); 11 }); 12 jQuery("#instagram-check").on("click", function (e) { 13 jQuery(this).next().toggleClass('label-checkbox'); 14 jQuery(".instagram").toggle(this.checked); 15 }); 16 jQuery("#twitter-check").on("click", function (e) { 17 jQuery(this).next().toggleClass('label-checkbox'); 18 jQuery(".twitter").toggle(this.checked); 19 }); 20 jQuery("#behance-check").on("click", function (e) { 21 jQuery(this).next().toggleClass('label-checkbox'); 22 jQuery(".behance").toggle(this.checked); 23 }); 24 25 jQuery("#dribbble-check").on("click", function (e) { 26 jQuery(this).next().toggleClass('label-checkbox'); 27 jQuery(".dribbble").toggle(this.checked); 28 }); 29 30 jQuery("#linkedin-check").on("click", function (e) { 31 jQuery(this).next().toggleClass('label-checkbox'); 32 jQuery(".linkedin").toggle(this.checked); 33 }); 34 35 jQuery("#reddit-check").on("click", function (e) { 36 jQuery(this).next().toggleClass('label-checkbox'); 37 jQuery(".reddit").toggle(this.checked); 38 }); 39 40 jQuery("#whatsapp-check").on("click", function (e) { 41 jQuery(this).next().toggleClass('label-checkbox'); 42 jQuery(".whatsapp").toggle(this.checked); 43 }); 44 45 jQuery("#youtube-check").on("click", function (e) { 46 jQuery(this).next().toggleClass('label-checkbox'); 47 jQuery(".youtube").toggle(this.checked); 48 }); 49 50 jQuery("#snapchat-check").on("click", function (e) { 51 jQuery(this).next().toggleClass('label-checkbox'); 52 jQuery(".snapchat").toggle(this.checked); 53 }); 54}); 55 56jQuery(document).ready(function () { 57 $('#file-upload').change(function () { 58 const fileInput = this; 59 const errorMessage = $('.error-message'); 60 const fileName = $(fileInput).val().split('\\').pop(); // Get the file name 61 console.log(fileName); 62 // Check if a file has been selected 63 if (fileInput.files.length === 0) { 64 errorMessage.html('Please select a file.'); 65 $('.file-name').text(''); 66 return; 67 } 68 69 const file = fileInput.files[0]; 70 71 // Check the file size (8 MB = 8 * 1024 * 1024 bytes) 72 if (file.size > 8 * 1024 * 1024) { 73 errorMessage.html('File size exceeds 8 MB.'); 74 $('.file-name').text(''); 75 fileInput.value = ''; // Clear the input field 76 return; 77 } 78 79 // Check the file format 80 const allowedFormats = ['.pdf', '.ai', '.eps', '.svg']; 81 const fileExtension = file.name.toLowerCase().slice((file.name.lastIndexOf('.') - 1 >>> 0) + 2); 82 83 if (!allowedFormats.includes('.' + fileExtension)) { 84 errorMessage.html('Upload file in .pdf, .ai, .eps, or .svg format.'); 85 $('.file-name').text(''); // Clear only the file name, not the error message 86 fileInput.value = ''; // Clear the input field 87 return; 88 } 89 // Display the selected file name 90 $('.file-name').text(`Selected File: ${fileName}`); 91 errorMessage.html(''); // Clear any previous error messages 92 }); 93 $('#file-upload-metal').change(function () { 94 const fileInput = this; 95 const errorMessage = $('.error-message'); 96 const fileName = $(fileInput).val().split('\\').pop(); // Get the file name 97 console.log(fileName); 98 // Check if a file has been selected 99 if (fileInput.files.length === 0) { 100 errorMessage.html('Please select a file.'); 101 $('.file-name-metal').text(''); 102 return; 103 } 104 105 const file = fileInput.files[0]; 106 107 // Check the file size (8 MB = 8 * 1024 * 1024 bytes) 108 if (file.size > 8 * 1024 * 1024) { 109 errorMessage.html('File size exceeds 8 MB.'); 110 $('.file-name-metal').text(''); 111 fileInput.value = ''; // Clear the input field 112 return; 113 } 114 115 // Check the file format
116 const allowedFormats = ['.pdf', '.ai', '.eps', '.svg']; 117 const fileExtension = file.name.toLowerCase().slice((file.name.lastIndexOf('.') - 1 >>> 0) + 2); 118 119 if (!allowedFormats.includes('.' + fileExtension)) { 120 errorMessage.html('Upload file in .pdf, .ai, .eps, or .svg format.'); 121 $('.file-name-metal').text(''); // Clear only the file name, not the error message 122 fileInput.value = ''; // Clear the input field 123 return; 124 } 125 // Display the selected file name 126 $('.file-name-metal').text(`Selected File: ${fileName}`); 127 errorMessage.html(''); // Clear any previous error messages 128 }); 129 $("#inner-customized").click(function () { 130 // Remove the 'required' attribute from the input field 131 $("#file-upload").removeAttr("required"); 132 133 if($('#matel-inner-customized').hasClass('active')){ 134 $('#inner-custom-content1').hide(); 135 $('#inner-customized-content1').show(); 136 $('#inner-custom-content').hide(); 137 $('#inner-customized-content').show(); 138 }else{ 139 $('#inner-customized-content1').hide(); 140 $('#inner-custom-content1').show(); 141 $('#inner-customized-content').hide(); 142 $('#inner-custom-content').show(); 143 } 144 }); 145 146 $("#inner-custom").click(function () { 147 // Restore the 'required' attribute to the input field 148 $("#file-upload").attr("required", true); 149 $('#inner-customized-content').hide(); 150 $('#inner-custom-content').show(); 151 }); 152 // metal case 153 $("#matel-inner-customized").click(function () { 154 // Remove the 'required' attribute from the input field 155 $("#file-upload-metal").removeAttr("required"); 156 157 if($('#matel-inner-customized').hasClass('active')){ 158 $('#inner-custom-content1').hide(); 159 $('#inner-customized-content1').show(); 160 $('#inner-custom-content').hide(); 161 $('#inner-customized-content').show(); 162 }else{ 163 $('#inner-customized-content1').hide(); 164 $('#inner-custom-content1').show(); 165 $('#inner-customized-content').hide(); 166 $('#inner-custom-content').show(); 167 } 168 }); 169 170 $("#matel-inner-custom").click(function () { 171 // Restore the 'required' attribute to the input field 172 $("#file-upload-metal").attr("required", true); 173 $('#inner-customized-content').hide(); 174 $('#inner-custom-content').show(); 175 }); 176}); 177jQuery(document).ready(function () { 178 179 // fb close with cross btn 180 jQuery(".fb-cross-btn").on("click", function () { 181 jQuery(".facebook").css("display", "none"); 182 jQuery("#fb-check").prop("checked", false); 183 jQuery("#fb-check").next().removeClass("label-checkbox"); 184 jQuery('#facebook_link').val(''); 185 186 jQuery(".facebook-icon-active").toggle(false); 187 jQuery(".facebook-icon").toggle(true); 188 }); 189 190 // tiktok close with cross btn 191 jQuery(".tktok-cross-btn").on("click", function () { 192 jQuery(".tiktok").css("display", "none"); 193 jQuery("#tiktok-check").prop("checked", false); 194 jQuery("#tiktok-check").next().removeClass("label-checkbox"); 195 jQuery('#tiktok_link').val(''); 196 jQuery(".tiktok-icon-active").toggle(false); 197 jQuery(".tiktok-icon").toggle(true); 198 }); 199 200 // instagram close with cross btn 201 jQuery(".instagram-cross-btn").on("click", function () { 202 jQuery(".instagram").css("display", "none"); 203 jQuery("#instagram-check").prop("checked", false); 204 jQuery("#instagram-check").next().removeClass("label-checkbox"); 205 jQuery('#instagram_link').val(''); 206 jQuery(".instagram-icon-active").toggle(false); 207 jQuery(".instagram-icon").toggle(true); 208 }); 209 210 // twitter close with cross btn 211 jQuery(".twitter-cross-btn").on("click", function () { 212 jQuery(".twitter").css("display", "none"); 213 jQuery("#twitter-check").prop("checked", false); 214 jQuery("#twitter-check").next().removeClass("label-checkbox"); 215 jQuery('#twitter_link').val(''); 216 jQuery(".twitter-icon-active").toggle(false); 217 jQuery(".twitter-icon").toggle(true); 218 }); 219 220 // behance close with cross btn 221 jQuery(".behance-cross-btn").on("click", function () { 222 jQuery(".behance").css("display", "none"); 223 jQuery("#behance-check").prop("checked", false); 224 jQuery("#behance-check").next().removeClass("label-checkbox"); 225 jQuery('#behance_link').val(''); 226 jQuery(".behance-icon-active").toggle(false); 227 jQuery(".behance-icon").toggle(true); 228 }); 229 230 // dribbble close with cross btn 231 jQuery(".dribbble-cross-btn").on("click", function () { 232 233 jQuery(".dribbble").css("display", "none"); 234 jQuery("#dribbble-check").prop("checked", false); 235 jQuery("#dribbble-check").next().removeClass("label-checkbox"); 236 jQuery('#dribble_link').val(''); 237 jQuery(".dribble-icon-active").toggle(false); 238 jQuery(".dribble-icon").toggle(true); 239 }); 240 241 // linkedin close with cross btn 242 jQuery(".linkedin-cross-btn").on("click", function () { 243 jQuery(".linkedin").css("display", "none"); 244 jQuery("#linkedin-check").prop("checked", false); 245 jQuery("#linkedin-check").next().removeClass("label-checkbox"); 246 jQuery('#linkedin_link').val(''); 247 jQuery(".linkedin-icon-active").toggle(false); 248 jQuery(".linkedin-icon").toggle(true); 249 }); 250 251 jQuery(".reddit-cross-btn").on("click", function () { 252 jQuery(".reddit").css("display", "none"); 253 jQuery("#reddit-check").prop("checked", false); 254 jQuery("#reddit-check").next().removeClass("label-checkbox"); 255 jQuery('#reddit_link').val(''); 256 jQuery(".reddit-icon-active").toggle(false); 257 jQuery(".reddit-icon").toggle(true); 258 }); 259 260 261 jQuery(".whatsapp-cross-btn").on("click", function () { 262 jQuery(".whatsapp").css("display", "none"); 263 jQuery("#whatsapp-check").prop("checked", false); 264 jQuery("#whatsapp-check").next().removeClass("label-checkbox"); 265 jQuery('#whatsapp_link').val(''); 266 jQuery(".whatsapp-icon-active").toggle(false); 267 jQuery(".whatsapp-icon").toggle(true); 268 }); 269 270 271 jQuery(".youtube-cross-btn").on("click", function () { 272 jQuery(".youtube").css("display", "none"); 273 jQuery("#youtube-check").prop("checked", false); 274 jQuery("#youtube-check").next().removeClass("label-checkbox"); 275 jQuery('#youtube_link').val(''); 276 jQuery(".youtube-icon-active").toggle(false); 277 jQuery(".youtube-icon").toggle(true); 278 }); 279 280 281 jQuery(".snapchat-cross-btn").on("click", function () { 282 jQuery(".snapchat").css("display", "none"); 283 jQuery("#snapchat-check").prop("checked", false); 284 jQuery("#snapchat-check").next().removeClass("label-checkbox"); 285 jQuery('#snapchat_link').val(''); 286 jQuery(".snapchat-icon-active").toggle(false); 287 jQuery(".snapchat-icon").toggle(true); 288 }); 289}); 290 291function readURL(input) { 292 if (input.files && input.files[0]) { 293 var file = input.files[0]; 294 var size = file.size; 295 if (size > 1024000) { // 1 MB 296 jQuery("#image-fize-error").css('display', 'block'); 297 jQuery("#image-fize-error").text('File size must be less than 1 MB'); 298 jQuery("#image-fize-error").css('margin-top', '10px'); 299 // jQuery('#save-btn').prop('disabled', true); 300 input.value = ""; // Reset the input element 301 } else { 302 jQuery("#image-fize-error").css('display', 'none'); 303 jQuery('#save-btn').prop('disabled', false); 304 var reader = new FileReader(); 305 reader.onload = function (e) { 306 jQuery(".image-upload-wrap").hide(); 307 jQuery(".file-upload-image").attr("src", e.target.result); 308 jQuery(".file-upload-content").show(); 309 };
310 reader.readAsDataURL(file); 311 312 } 313 } else { 314 // input.value = ""; // Reset the input element 315 removeUpload(); 316 } 317} 318 319jQuery('#share-btn').on('click', function (e) { 320 var url = jQuery(this).attr("data-id"); 321 if (navigator.share) { 322 navigator.share({ 323 title: 'Share Profile', 324 url: url, 325 }).then(() => { 326 console.log('Thanks for sharing!'); 327 $('.tooltiptext').addClass('show_tooltip'); 328 setTimeout(function () { 329 $('.tooltiptext').removeClass('show_tooltip'); 330 }, 5000); 331 }) 332 .catch(console.error); 333 334 } else { 335 // fallback 336 } 337}); 338 339function removeUpload() { 340 jQuery(".file-upload-input").replaceWith(jQuery(".file-upload-input").clone()); 341 jQuery(".file-upload-content").hide(); 342 jQuery(".image-upload-wrap").show(); 343} 344jQuery(".image-upload-wrap").bind("dragover", function () { 345 jQuery(".image-upload-wrap").addClass("image-dropping"); 346}); 347jQuery(".image-upload-wrap").bind("dragleave", function () { 348 jQuery(".image-upload-wrap").removeClass("image-dropping"); 349}); 350function isURL(str) { 351 var regex = new RegExp("^(http[s]?:\\/\\/(www\\.)?|www\\.){1}([0-9A-Za-z-\\.@:%_\+~#=]+)+((\\.[a-zA-Z]{2,3})+)(/(.)*)?(\\?(.)*)?"); 352 var without_regex = new RegExp("^([0-9A-Za-z-\\.@:%_\+~#=]+)+((\\.[a-zA-Z]{2,3})+)(/(.)*)?(\\?(.)*)?"); 353 if (regex.test(str) || without_regex.test(str)) { 354 return true; 355 } else { 356 return false; 357 } 358} 359jQuery(document).ready(function ($) { 360 var myForm = $('#profile-builder'); 361 $(myForm).submit(function (e) { 362 e.preventDefault(); 363 $('.error-message-field').remove(); 364 jQuery('#loader-wrapper-ajax').show(); 365 var valid = true; 366 var scrollto = true; 367 if ($('#full_name').val() == '') { 368 $('#full_name').after('<p class="error-message-field">Full name is required.</p>'); 369 $('#full_name').css('border', '1px solid red'); 370 scrollToId('full_name', scrollto); 371 scrollto = false; 372 valid = false; 373 } 374 if ($('#phone_number').val() != '') { 375 if (!/^\+\d{10,15}$/.test($('#phone_number').val())) { 376 $('#phone_number').after('<p class="error-message-field">Enter a valid phone number</p>'); 377 scrollToId('phone_number', scrollto); 378 scrollto = false; 379 valid = false; 380 } 381 } 382 if ($('#phone_sec').val() != '') { 383 // if (!/^(?=.*[0-9])[+()0-9]+$/.test($('#phone_sec').val())) { 384 if (!/^\+\d{10,15}$/.test($('#phone_sec').val())) { 385 $('#phone_sec').after('<p class="error-message-field" style="color:red !important;">Enter a valid phone number.</p>'); 386 scrollToId('phone_sec', scrollto); 387 scrollto = false; 388 valid = false; 389 } 390 } 391 if ($('#whatsapp_link').val() != '') { 392 if (!/^\+\d{10,15}$/.test($('#whatsapp_link').val())) { 393 // if (!/^\+9\d{10,15}$/.test($('#whatsapp_link').val())){ 394 $('#whatsapp_link').after('<p class="error-message-field">Enter a valid phone number.</p>'); 395 scrollToId('whatsapp_link', scrollto); 396 scrollto = false; 397 valid = false; 398 } 399 } 400 if ($('#email').val() == '') { 401 $('#email').after('<p class="error-message-field">Email is required.</p>'); 402 $('#email').css('border', '1px solid red'); 403 scrollToId('email', scrollto); 404 scrollto = false; 405 valid = false; 406 } else { 407 filter = /^([a-zA-Z0-9_\.\-\+])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/; 408 if (!filter.test($('#email').val())) { 409 $('#email').after('<p class="error-message-field">Enter a valid email.</p>'); 410 scrollToId('email', scrollto); 411 scrollto = false; 412 valid = false; 413 } 414 } 415 if ($('#email_sec').val() != '') { 416 filter = /^([a-zA-Z0-9_\.\-\+])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/; 417 if (!filter.test($('#email_sec').val())) { 418 $('#email_sec').after('<p class="error-message-field">Enter a valid email.</p>'); 419 scrollToId('email_sec', scrollto); 420 scrollto = false;
421 valid = false; 422 } 423 } 424 if ($('#website_url').val() != '') { 425 if (!isURL($('#website_url').val())) { 426 $('#website_url').after('<p class="error-message-field">Enter a valid website URL.</p>'); 427 scrollToId('website_url', scrollto); 428 scrollto = false; 429 valid = false; 430 } 431 } 432 if ($('#website_sec').val() != '') { 433 if (!isURL($('#website_sec').val())) { 434 $('#website_sec').after('<p class="error-message-field">Enter a valid website URL.</p>'); 435 scrollToId('website_sec', scrollto); 436 scrollto = false; 437 valid = false; 438 } 439 } 440 if ($('#facebook_link').val() != '') { 441 if (!isURL($('#facebook_link').val())) { 442 $('#facebook_link').after('<p class="error-message-field">Enter a valid link.</p>'); 443 scrollToId('facebook_link', scrollto); 444 scrollto = false; 445 valid = false; 446 } 447 } 448 if ($('#tiktok_link').val() != '') { 449 if (!isURL($('#tiktok_link').val())) { 450 $('#tiktok_link').after('<p class="error-message-field">Enter a valid link.</p>'); 451 scrollToId('tiktok_link', scrollto); 452 scrollto = false; 453 valid = false; 454 } 455 } 456 if ($('#instagram_link').val() != '') { 457 if (!isURL($('#instagram_link').val())) { 458 $('#instagram_link').after('<p class="error-message-field">Enter a valid link.</p>'); 459 scrollToId('instagram_link', scrollto); 460 scrollto = false; 461 valid = false; 462 } 463 } 464 if ($('#twitter_link').val() != '') { 465 if (!isURL($('#twitter_link').val())) { 466 $('#twitter_link').after('<p class="error-message-field">Enter a valid link.</p>'); 467 scrollToId('twitter_link', scrollto); 468 scrollto = false; 469 valid = false; 470 } 471 } 472 if ($('#behance_link').val() != '') { 473 if (!isURL($('#behance_link').val())) { 474 $('#behance_link').after('<p class="error-message-field">Enter a valid link.</p>'); 475 scrollToId('behance_link', scrollto); 476 scrollto = false; 477 valid = false; 478 } 479 } 480 if ($('#dribble_link').val() != '') { 481 if (!isURL($('#dribble_link').val())) { 482 $('#dribble_link').after('<p class="error-message-field">Enter a valid link.</p>'); 483 scrollToId('dribble_link', scrollto); 484 scrollto = false; 485 valid = false; 486 } 487 } 488 if ($('#linkedin_link').val() != '') { 489 if (!isURL($('#linkedin_link').val())) { 490 $('#linkedin_link').after('<p class="error-message-field">Enter a valid link.</p>'); 491 scrollToId('linkedin_link', scrollto); 492 scrollto = false; 493 valid = false; 494 } 495 } 496 if ($('#reddit_link').val() != '') { 497 if (!isURL($('#reddit_link').val())) { 498 $('#reddit_link').after('<p class="error-message-field">Enter a valid link.</p>'); 499 scrollToId('reddit_link', scrollto); 500 scrollto = false; 501 valid = false; 502 } 503 } 504 if ($('#appstore').val() != '') { 505 if (!isURL($('#appstore').val())) { 506 $('#appstore').after('<p class="error-message-field">Enter a valid link.</p>'); 507 scrollToId('appstore', scrollto); 508 scrollto = false; 509 valid = false; 510 } 511 } 512 if ($('#playstore').val() != '') { 513 if (!isURL($('#playstore').val())) { 514 $('#playstore').after('<p class="error-message-field">Enter a valid link.</p>'); 515 scrollToId('playstore', scrollto); 516 scrollto = false; 517 valid = false;
518 } 519 } 520 if (!valid) { 521 jQuery('#loader-wrapper-ajax').hide(); 522 return; 523 } 524 $('.error-message').html('').hide(); 525 var myformData = new FormData(myForm[0]); 526 myformData.append('action', 'pn_wp_frontend_ajax_upload'); 527 528 if (valid) { 529 jQuery('#save-btn').text('Saving changes...'); 530 jQuery('#save-btn').prop("disabled", true); 531 } 532 533 534 // show loading on 535 // jQuery(this).text("Loading..."); 536 // jQuery(this).prop("disabled", true); 537 538 $.ajax({ 539 type: "POST", 540 data: myformData, 541 dataType: "json", 542 url: ajaxurl, 543 cache: false, 544 processData: false, 545 contentType: false, 546 enctype: 'multipart/form-data', 547 success: function (data) { 548 if (data.error) { 549 $('.error-message').html(data.message).show(); 550 $('.success-message').html('').hide(); 551 $(window).scrollTop(0); 552 jQuery('#loader-wrapper-ajax').hide(); 553 } else { 554 $('.success-message').html(data.message).show(); 555 $('.error-message').html('').hide(); 556 $(window).scrollTop(0); 557 document.getElementById('profile-builder').reset(); 558 jQuery('.remove-image').trigger('click'); 559 jQuery("[class$='-cross-btn']").trigger('click'); 560 jQuery('#loader-wrapper-ajax').hide(); 561 setTimeout(function () { 562 jQuery('.remove-image').trigger('click'); 563 jQuery("[class$='-cross-btn']").trigger('click'); 564 jQuery('#loader-wrapper-ajax').hide(); 565 window.location.href = data.redirect; 566 }, 1000); 567 } 568 } 569 }); 570 }); 571}); 572function scrollToId(id, scrollto) { 573 if (scrollto) { 574 var offset = 100; 575 jQuery('html, body').animate({ 576 scrollTop: jQuery("#" + id).offset().top - offset 577 }, 300); 578 } 579} 580 581function downloadVCF(id) { 582 jQuery('#loader-wrapper-ajax').show(); 583 584 var myformData = new FormData(); 585 myformData.append('id', id); 586 myformData.append('action', 'download_vcf'); 587 588 jQuery.ajax({ 589 type: "POST", 590 data: myformData, 591 url: ajaxurl, 592 cache: false, 593 processData: false, 594 contentType: false, 595 success: function (data) { 596 var downloadLink = document.createElement("a"); 597 var url = data; 598 downloadLink.href = url; 599 600 document.body.appendChild(downloadLink); 601 downloadLink.click(); 602 document.body.removeChild(downloadLink); 603 jQuery('#loader-wrapper-ajax').hide(); 604 605 var user_agent = navigator.userAgent.toLowerCase(); 606 var parent_id = parseInt(jQuery('#parent_id').val(), 10); // get parent_id from hidden input 607 var showExchangeButton = jQuery('#show_exchange_button_flag').val() === 'true'; 608 609 // ✅ Show modal only for iPhone/iPad users 610 if ((user_agent.indexOf('iphone') !== -1 || user_agent.indexOf('ipad') !== -1)) { 611 jQuery('#sv_contact').modal('hide'); 612 613 if (showExchangeButton === true) { 614 jQuery('#contact-share').modal('show'); 615 } 616 } 617 } 618 }); 619} 620 621function applyCustomFilter(id) { 622 jQuery('.nav-link').removeClass('active'); 623 jQuery('#bapf_1_' + id).click(); 624 jQuery('#nav-tab-' + id).addClass('active'); 625} 626jQuery(document).ready(function ($) { 627 $('.customers_slider').slick({ 628 dots: false, 629 infinite: true, 630 speed: 500, 631 slidesToShow: 3, 632 slidesToScroll: 1, 633 autoplay: true, 634 autoplaySpeed: 2000, 635 arrows: false, 636 responsive: [{ 637 breakpoint: 600, 638 settings: { 639 slidesToShow: 2, 640 slidesToScroll: 1 641 } 642 }, 643 { 644 breakpoint: 400, 645 settings: {
646 arrows: false, 647 slidesToShow: 1, 648 slidesToScroll: 1 649 } 650 } 651 ] 652 }); 653}); 654 655jQuery(document).ready(function ($) { 656 $('.htf-reviews').slick({ 657 infinite: true, 658 slidesToShow: 3, 659 slidesToScroll: 1, 660 dots: true, 661 // rtl: true, 662 arrows: false, 663 // rtl: false, 664 // margin: 20, 665 // variableWidth: true, 666 // centerMode: true, 667 responsive: [{ 668 breakpoint: 768, 669 settings: { 670 infinite: true, 671 slidesToShow: 1, 672 slidesToScroll: 1, 673 } 674 675 }, 676 { 677 breakpoint: 429, 678 settings: { 679 infinite: true, 680 slidesToShow: 1, 681 slidesToScroll: 1, 682 variableWidth: true, 683 // centerMode: true, 684 } 685 686 }, { 687 688 breakpoint: 991, 689 settings: { 690 infinite: true, 691 slidesToShow: 2, 692 slidesToScroll: 1, 693 } 694 695 } 696 ] 697 }); 698}); 699 700// code for NFC guide slider 701$(document).ready(function () { 702 // Initialize the slider on page load 703 var guideSlider = $('.nfc-guide-slider'); 704 var thumbViewer = $('.thumb-viewer'); 705 706 guideSlider.slick({ 707 infinite: true, 708 slidesToShow: 1, 709 arrows: true, 710 asNavFor: thumbViewer 711 }); 712 713 thumbViewer.slick({ 714 infinite: true, 715 slidesToShow: 4, 716 arrows: false, 717 asNavFor: guideSlider, 718 focusOnSelect: true 719 }); 720 721 guideSlider.on('beforeChange', function (event, slick, currentSlide, nextSlide) { 722 // Get the current slide element 723 var currentSlideElement = slick.$slides.eq(currentSlide); 724 725 // Find the video element within the current slide 726 var videoElement = currentSlideElement.find('video'); 727 728 // Pause the video if it exists 729 if (videoElement.length > 0) { 730 videoElement.get(0).pause(); 731 } 732 }); 733 734 $('a[data-toggle="tab"]').on('shown.bs.tab', function (e) { 735 736 // Reset and reinitialize the sliders on tab change 737 guideSlider.slick('unslick').slick({ 738 infinite: true, 739 slidesToShow: 1, 740 arrows: true, 741 asNavFor: thumbViewer 742 }); 743 744 thumbViewer.slick('unslick').slick({ 745 infinite: true, 746 slidesToShow: 4, 747 arrows: false, 748 asNavFor: guideSlider, 749 focusOnSelect: true 750 }); 751 }); 752 753 $('#myTab a').on('click', function (e) { 754 e.preventDefault(); 755 $(this).tab('show'); 756 }); 757}); 758// on change language update the language in chat 759document.tidioChatLang = document.querySelector('html').getAttribute('lang'); 760 761$(document).ready(function () { 762 // Function to update the product price and button text 763 function updateProductInfo() { 764 var activeTab = $('#myTab .nav-link.active').attr('href'); 765 var priceInput = $(activeTab).find('input[name$="-price"]'); 766 var price = priceInput.val(); 767 var button = $('.custom_btn_plain'); 768 var buttonText = ''; 769 770 if (activeTab === '#lite') { 771 buttonText = 'Continue'; 772 } else if (activeTab === '#black') { 773 if (isArabicLanguage()) { 774 buttonText = 'أكتب أسمك ومنصبك بـ'; 775 } else { 776 buttonText = 'Customize'; 777 } 778 } else if (activeTab === '#custom') { 779 if (isArabicLanguage()) { 780 buttonText = 'صمم بطاقتك الآن بـ'; 781 } else { 782 buttonText = 'Customize'; 783 } 784 } 785 786 $('.nfc_product_price').text(price); 787 button.text(buttonText); 788 } 789 790 // Function to check if the selected language is Arabic 791 function isArabicLanguage() { 792 var htmlTag = $('html'); 793 return htmlTag.attr('dir') === 'rtl'; 794 } 795 796 // Update the product price and button text on page load 797 updateProductInfo(); 798 799 // Update the product price and button text when a tab is shown 800 $('a[data-toggle="tab"]').on('shown.bs.tab', function (e) { 801 updateProductInfo(); 802 }); 803}); 804 805// update the button value 806jQuery(document).ready(function () { 807 jQuery('.nfc_guide_main .nav-link').click(function () { 808 // Get the value of the clicked tab's aria-controls attribute 809 var tabValue = jQuery(this).attr('aria-controls'); 810 // Get the current href value of the button 811 var btnUrl = jQuery('.custom_btn').attr('href'); 812 // Update the URL with the tab value 813 var newUrl = btnUrl.replace(/tab=[^&]+/, 'tab=' + tabValue); 814 // Update the href attribute of the button 815 jQuery('.custom_btn').attr('href', newUrl); 816 }); 817}); 818// on url active tab 819jQuery(document).ready(function () { 820 // Get the value of the "tab" parameter from the URL
821 var urlParams = new URLSearchParams(window.location.search); 822 var tabValue = urlParams.get('tab'); 823 824 // Set the active tab based on the "tab" parameter 825 if (tabValue === 'custom') { 826 jQuery('#nav-custom-tab').addClass('active'); 827 jQuery('.card_detail_area').show(); 828 jQuery('.card_input_area').show(); 829 jQuery('#nav-custom').show(); 830 jQuery('#nav-lite-tab').removeClass('active'); 831 jQuery('#nav-black').hide(); 832 jQuery('#nav-lite').hide(); 833 } else if (tabValue === 'black') { 834 jQuery('#inner-customized-content1').show(); 835 jQuery('#nav-black-tab').addClass('active'); 836 jQuery('.card_detail_area').show(); 837 jQuery('.your_company_input').show(); 838 jQuery('#nav-black').show(); 839 jQuery('#nav-lite').hide(); 840 jQuery('.card_input_area').show(); 841 jQuery('#nav-lite-tab').removeClass('active'); 842 if($('#nav-custom-tab').hasClass('active')){ 843 jQuery('#inner-customized-content').show(); 844 } 845 } else if (tabValue === 'lite') { 846 jQuery('#nav-lite-tab').addClass('active'); 847 $("#file-upload").removeAttr("required"); 848 $("#file-upload-metal").removeAttr("required"); 849 jQuery('.card_detail_area').hide(); 850 jQuery('.card_input_area').hide(); 851 } 852}); 853jQuery(function ($) { 854 let timeout; 855 $('.woocommerce').on('change', 'input.qty', function () { 856 if (timeout !== undefined) { 857 clearTimeout(timeout); 858 } 859 timeout = setTimeout(function () { 860 jQuery('.update_cart_btn .button').trigger('click'); 861 }, 1000); // 1 second delay, half a second (500) seems comfortable too 862 }); 863}); 864 865 866 867jQuery('#share-btn').on('click', function (e) { 868 var url = jQuery(this).attr("data-id"); 869 if (navigator.share) { 870 navigator.share({ 871 title: 'Share Profile', 872 url: url, 873 }).then(() => { 874 console.log('Thanks for sharing!'); 875 }) 876 .catch(console.error); 877 } else { 878 // fallback 879 } 880}); 881 882 883function copyToClipboard(text) { 884 var textArea = document.createElement("textarea"); 885 textArea.value = text; 886 document.body.appendChild(textArea); 887 textArea.select(); 888 try { 889 var successful = document.execCommand('copy'); 890 var msg = successful ? 'successful' : 'unsuccessful'; 891 $('.alert').css('display', 'block'); 892 } catch (err) { 893 console.log('Oops, unable to copy', err); 894 } 895 document.body.removeChild(textArea); 896} 897 898$(document).on('click', '.swatch:not(.disabled)', function () { 899 var data = jQuery(this).attr('data-value'); 900 901 if ($(this).hasClass('selected')) { 902 jQuery('.selected_var span').text(data); 903 } else { 904 jQuery('.selected_var span').text('No Color Selected'); 905 } 906}); 907$('.swatch').click(function () { 908 if ($(this).hasClass('disabled')) { 909 return false; 910 } 911}); 912 913// show out of stock tooltip 914$(document).on('hover', '.swatch-color.disabled', function () { 915 $(this).css('cursor', 'no-drop'); 916 $(this).next('.swatch__tooltip').text('Out of Stock'); 917}); 918function miniCartMethod() { 919 // jQuery(".dropdown-menu-mini-cart").css('display', 'block'); 920 jQuery(".dropdown-menu-mini-cart").toggle(); 921} 922function sliderFiltering(index, totals) { 923 if (index == 0) { 924 $('.products-wrap').slick('slickUnfilter'); 925 } else { 926 $('.products-wrap').slick('slickUnfilter'); 927 var filtersStr = ""; 928 for (var i = 1; i <= totals; i++) { 929 if (index == i) { 930 filtersStr += ".product-single-" + i + ","; 931 } 932 } 933 filtersStr = filtersStr.replace(/,*$/, ''); 934 jQuery('.products-wrap').slick('slickFilter', filtersStr); 935 } 936} 937jQuery(document).ready(function ($) { 938 $('#login-btn').on('click', function () { 939 var email = $('#login-frm #email').val(); 940 var password = $('#login-frm #password').val(); 941 var validationPassed = true; 942 $(".error").remove(); 943 944 if (email.length < 1) { 945 validationPassed = false;
946 $('#email').after('<span class="error">Email field is required</span>'); 947 } else { 948 var regEx = /^([a-zA-Z0-9_\.\-\+])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/; 949 var validEmail = regEx.test(email); 950 if (!validEmail) { 951 validationPassed = false; 952 $('#email').after('<span class="error">Enter a valid email</span>'); 953 } 954 } 955 if (password.length < 1) { 956 validationPassed = false; 957 $('#password').after('<span class="error">Password field is required</span>'); 958 } 959 if (validationPassed) { 960 var myForm = $('#login-frm'); 961 var myformData = new FormData(myForm[0]); 962 myformData.append('action', 'pn_wp_frontend_ajax_login'); 963 964 $.ajax({ 965 type: "POST", 966 data: myformData, 967 dataType: "json", 968 url: ajaxurl, 969 cache: false, 970 processData: false, 971 contentType: false, 972 enctype: 'multipart/form-data', 973 success: function (data) { 974 if (data.error) { 975 $('#loginModal .login-heading').after('<span class="error">' + data.message + '</span>'); 976 } else { 977 window.location.href = data.redirect; 978 } 979 } 980 }); 981 } 982 }); 983}); 984// Work Slider 985const work_row = document.querySelector(".work__inner-row"); 986jQuery(work_row).slick({ 987 slidesToShow: 3, 988 slidesToScroll: 1, 989 autoplay: true, 990 autoplaySpeed: 2500, 991 responsive: [{ 992 breakpoint: 840, 993 settings: { 994 slidesToShow: 2 995 } 996 }, 997 { 998 breakpoint: 540, 999 settings: { 1000 slidesToShow: 1 1001 } 1002 } 1003 ] 1004}); 1005// Cards 1006const cards = document.querySelectorAll(".card"), 1007 buttons = document.querySelectorAll("#card__btn"); 1008 1009const activesReset = (arr) => { 1010 arr.forEach(item => { 1011 item.classList.remove("active"); 1012 }) 1013} 1014 1015buttons.forEach(button => { 1016 button.addEventListener("click", () => { 1017 const value = button.dataset.card; 1018 1019 activesReset(buttons); 1020 button.classList.add("active"); 1021 1022 cards.forEach(card => { 1023 if (card.id === value) { 1024 card.classList.add("active"); 1025 } else { 1026 card.classList.remove("active"); 1027 } 1028 }) 1029 }) 1030}); 1031 1032// card page testing 1033 1034jQuery(document).ready(function () { 1035 $('#rotate').on('click', function () { 1036 $('.slick-slide.slick-current .card-back-side').toggleClass('rotated_back'); 1037 $('.slick-slide.slick-current .card-front-side').toggleClass('rotated_front'); 1038 }); 1039}); 1040 1041$(".slider").slick({ 1042 centerMode: true, 1043 centerPadding: "0px", 1044 slidesToShow: 3, 1045 slidesToScroll: 1, 1046 focusOnSelect: true, 1047 responsive: [{ 1048 breakpoint: 600, 1049 settings: { 1050 slidesToShow: 1, 1051 slidesToScroll: 1 1052 } 1053 }] 1054}); 1055jQuery('#design-tab').on('click', function () { 1056 jQuery('#slider-div').css('display', 'block'); 1057 jQuery('#signle-card-div').css('display', 'none'); 1058 1059 jQuery('#slider_rotate').css('display', 'block'); 1060 jQuery('#signel_image_rotate').css('display', 'none'); 1061 1062 var material = jQuery('.tab-list-cards .active').attr('data-material'); 1063 jQuery('.slider').slick('slickUnfilter'); 1064 if (material == "Plastic") { 1065 jQuery('.slider').slick('slickFilter', '.plastic-slide'); 1066 } else if (material == "Metal") { 1067 jQuery('.slider').slick('slickFilter', '.metal-slide'); 1068 } 1069 1070 jQuery('#select-template').val(jQuery('.slick-current').attr('data-template')); 1071}); 1072 1073jQuery('#custom-upload-tab').on('click', function () { 1074 jQuery('#slider-div').css('display', 'none'); 1075 jQuery('#signle-card-div').css('display', 'flex'); 1076 1077 jQuery('#slider_rotate').css('display', 'none'); 1078 jQuery('#signel_image_rotate').css('display', 'block'); 1079 jQuery('#select-template').val('Custom'); 1080}); 1081 1082 1083jQuery('.plastic').on('click', function (e) { 1084 jQuery('.plastic').addClass('active'); 1085 jQuery('.metal').removeClass('active'); 1086 1087 jQuery('.information-div ul').css('display', 'flex'); 1088}); 1089 1090jQuery('.metal').on('click', function (e) { 1091 jQuery('.metal').addClass('active'); 1092 jQuery('.plastic').removeClass('active'); 1093 1094 jQuery('.information-div ul').css('display', 'none'); 1095}); 1096 1097 1098 1099// custom upload file select message on nfc card 1100jQuery('#template-custom-front').change(function () { 1101 // Get the file input element 1102 var fileInput = $(this); 1103 1104 // Get the label element 1105 var label = $('#src-success-front'); 1106 1107 // Update the label text 1108 if (fileInput.val()) { 1109 var fileName = fileInput.val().split(/(\\|\/)/g).pop(); 1110 label.text('File selected: ' + fileName); 1111 } else { 1112 label.text('No file selected'); 1113 } 1114}); 1115 1116jQuery('#template-custom-back').change(function () { 1117 // Get the file input element 1118 var fileInput = $(this); 1119 1120 // Get the label element 1121 var label = $('#src-success-back'); 1122 1123 // Update the label text 1124 if (fileInput.val()) { 1125 var fileName = fileInput.val().split(/(\\|\/)/g).pop(); 1126 label.text('File selected: ' + fileName); 1127 } else { 1128 label.text('No file selected'); 1129 } 1130}); 1131 1132// form enter key disabe 1133jQuery(document).ready(function (jQuery) { 1134 jQuery('#dgwt-wcas-search-input-1').on('keydown', function (event) { 1135 if (event.key === 'Enter') { 1136 event.preventDefault(); 1137 } 1138 }); 1139}); 1140// contact submit scroll top 1141jQuery('.wpcf7-form').on('submit', function () { 1142 1143 var top_extra = 100; 1144 1145 $('html, body').animate({
1146 scrollTop: $('.scroll-top').offset().top - top_extra 1147 }, 500); 1148}); 1149 1150// new js for NFC card page 11 JAN 2023 1151jQuery(document).ready(function () { 1152 jQuery('#rotate_front').on('click', function () { 1153 jQuery('.card__flip_front').addClass('rotated_front'); 1154 jQuery('.card__flip_back').removeClass('rotated_back'); 1155 jQuery(this).addClass('rotated_front_a'); 1156 jQuery('#rotate_back').removeClass('rotated_back_a'); 1157 }); 1158 1159 jQuery('#rotate_back').on('click', function () { 1160 jQuery('.card__flip_back').addClass('rotated_back'); 1161 jQuery('.card__flip_front').removeClass('rotated_front'); 1162 jQuery(this).addClass('rotated_back_a'); 1163 jQuery('#rotate_front').removeClass('rotated_front_a'); 1164 }); 1165 jQuery("#nav-black-tab").click(function () { 1166 // jQuery(".card_detail_area").hide(); 1167 // jQuery(".your_company_input").hide(); 1168 // $(".file-name").text(""); 1169 $("#file-upload").removeAttr("required"); 1170 $("#file-upload-metal").removeAttr("required"); 1171 jQuery(".card_input_area").show(); 1172 jQuery(".card_detail_area").show(); 1173 jQuery("#nav-lite").hide(); 1174 jQuery('#nav-black').show(); 1175 jQuery('#nav-custom').hide(); 1176 if(jQuery("#matel-inner-custom").hasClass('active')){ 1177 $("#file-upload-metal").attr("required", true); 1178 jQuery("#inner-custom-content1").show(); 1179 jQuery("#inner-customized-content1").hide(); 1180 jQuery(".card_detail_area").hide(); 1181 jQuery(".card_input_area").hide(); 1182 jQuery(".nfc_rotate_img").hide(); 1183 1184 }else{ 1185 jQuery("#inner-custom-content1").hide(); 1186 jQuery("#inner-customized-content1").show(); 1187 jQuery(".nfc_rotate_img").show(); 1188 } 1189 }); 1190 jQuery("#nav-lite-tab").click(function () { 1191 jQuery(".card_detail_area").hide(); 1192 jQuery(".card_input_area").hide(); 1193 jQuery("#nav-lite").show(); 1194 jQuery(".nfc_rotate_img").show(); 1195 jQuery('#nav-black').hide(); 1196 jQuery('#nav-custom').hide(); 1197 $("#file-upload-metal").removeAttr("required"); 1198 $("#file-upload").removeAttr("required"); 1199 1200 }); 1201 jQuery("#nav-custom-tab").click(function () { 1202 // $(".file-name").text(""); 1203 $("#file-upload").removeAttr("required"); 1204 $("#file-upload-metal").removeAttr("required"); 1205 jQuery(".card_detail_area").show(); 1206 jQuery(".your_company_input").show(); 1207 jQuery(".card_input_area").show(); 1208 jQuery("#nav-lite").hide(); 1209 jQuery('#nav-black').hide(); 1210 jQuery('#nav-custom').show(); 1211 if (jQuery("#inner-custom").hasClass("active")) { 1212 $("#file-upload").attr("required", true); 1213 jQuery(".card_detail_area").hide(); 1214 jQuery('.card_input_area').hide(); 1215 jQuery('.nfc_rotate_img').hide(); 1216 } 1217 if (jQuery("#inner-customized").hasClass("active")) { 1218 jQuery("#inner-customized-content").show(); 1219 jQuery(".nfc_rotate_img").show(); 1220 jQuery("#inner-custom-content").hide(); 1221 1222 }else{ 1223 jQuery("#inner-customized-content").hide(); 1224 jQuery("#inner-custom-content").show(); 1225 } 1226 1227 }); 1228 jQuery('#inner-custom , #matel-inner-custom').click(function () { 1229 jQuery(".nfc_rotate_img").hide(); 1230 jQuery(".card_detail_area").hide(); 1231 jQuery(".nfc_cards_main .card_input_area").hide(); 1232 jQuery('#inner-custom-content1 ').show(); 1233 jQuery('#inner-customized-content1').hide(); 1234 }); 1235 jQuery("#inner-customized").click(function () { 1236 jQuery(".nfc_rotate_img").show(); 1237 jQuery(".card_detail_area").show(); 1238 jQuery(".card_input_area").show(); 1239 jQuery('#inner-customized-content').show(); 1240 jQuery('#inner-custom-content').hide(); 1241 }); 1242 jQuery("#matel-inner-customized").click(function () { 1243 jQuery(".nfc_rotate_img").show(); 1244 jQuery(".card_detail_area").show(); 1245 jQuery(".card_input_area").show(); 1246 jQuery('#inner-custom-content1').hide(); 1247 jQuery('#inner-customized-content1').show(); 1248 }); 1249 jQuery('#matel-inner-custom').click(function () { 1250 $('#select-card-metarial').val('Metal Custom Design'); 1251 }); 1252 1253 jQuery("#matel-inner-customized").click(function () { 1254 $('#select-card-metarial').val('Metal Custom'); 1255 }); 1256 1257 1258 1259}); 1260 1261 1262/*Code for the stand*/ 1263jQuery(document).ready(function ($) { 1264 var myForm = $('#stand-link-frm'); 1265 $(myForm).submit(function (e) { 1266 e.preventDefault(); 1267 $('.error-message-field').remove(); 1268 jQuery('#loader-wrapper-ajax').show();
1269 var valid = true; 1270 var scrollto = true; 1271 if ($('#custom_link').val() == '') { 1272 $('#custom_link').after('<p class="error-message-field">Link is required.</p>'); 1273 $('#custom_link').css('border', '1px solid red'); 1274 scrollToId('full_name', scrollto); 1275 scrollto = false; 1276 valid = false; 1277 } else if (!isURL($('#custom_link').val())) { 1278 $('#custom_link').after('<p class="error-message-field">Enter a valid URL.</p>'); 1279 scrollToId('custom_link', scrollto); 1280 scrollto = false; 1281 valid = false; 1282 } 1283 $('.error-message').html('').hide(); 1284 var myformData = new FormData(myForm[0]); 1285 myformData.append('action', 'pn_wp_frontend_ajax_link'); 1286 1287 $.ajax({ 1288 type: "POST", 1289 data: myformData, 1290 dataType: "json", 1291 url: ajaxurl, 1292 cache: false, 1293 processData: false, 1294 contentType: false, 1295 enctype: 'multipart/form-data', 1296 success: function (data) { 1297 if (data.error) { 1298 $('.error-message').html(data.message).show(); 1299 $('.success-message').html('').hide(); 1300 $(window).scrollTop(0); 1301 jQuery('#loader-wrapper-ajax').hide(); 1302 } else { 1303 $('.success-message').html(data.message).show(); 1304 $('.error-message').html('').hide(); 1305 $(window).scrollTop(0); 1306 jQuery('#loader-wrapper-ajax').hide(); 1307 alert(data.message); 1308 window.location.href = "/"; 1309 } 1310 } 1311 }); 1312 }); 1313}); 1314// add parent to combine 2 elements for styling 1315$('body.single-product:not(.nfc_product_detail):not(.rabt_stickers_product) .quantity, body.single-product:not(.nfc_product_detail):not(.rabt_stickers_product) .single_add_to_cart_button').wrapAll('<div class="parent_case_section"></div>'); 1316 1317$(document).ready(function () { 1318 var htmlTag = $('html'); 1319 if (htmlTag.attr('dir') === 'rtl' && htmlTag.attr('lang') === 'ar') { 1320 $('#billing_countrycode, #billing_phone').attr('dir', 'ltr'); 1321 $('#billing_phone').attr('inputmode', 'numeric'); 1322 } 1323 // Map country codes to dial codes 1324 var countryToDialCode = { 1325 'BH': '+973', // Bahrain 1326 'KW': '+965', // Kuwait 1327 'OM': '+968', // Oman 1328 'QA': '+974', // Qatar 1329 'AE': '+971', // United Arab Emirates 1330 'SA': '+966' // Saudi Arabia 1331 }; 1332 1333 // Function to set the selected dial code based on the selected country 1334 function setDialCode() { 1335 var selectedCountry = $('#billing_country').val(); 1336 var dialCode = countryToDialCode[selectedCountry]; 1337 1338 // Set the selected dial code in the country code dropdown 1339 $('#billing_countrycode').val(dialCode); 1340 } 1341 1342 // Set the initial dial code on page load 1343 setDialCode(); 1344 1345 // When the country dropdown changes 1346 $('#billing_country').change(function () { 1347 setDialCode(); 1348 }); 1349}); 1350 1351/*Code for the review*/ 1352jQuery(document).ready(function ($) { 1353 var myForm = $('#review-link-frm'); 1354 $(myForm).submit(function (e) { 1355 e.preventDefault(); 1356 $('.error-message-field').remove(); 1357 jQuery('#loader-wrapper-ajax').show(); 1358 // var valid = true; 1359 // var scrollto = true; 1360 // if ($('#custom_link').val() == '') { 1361 // $('#custom_link').after('<p class="error-message-field">Link is required.</p>'); 1362 // $('#custom_link').css('border', '1px solid red'); 1363 // scrollToId('full_name', scrollto); 1364 // scrollto = false; 1365 // valid = false; 1366 // } else if (!isURL($('#custom_link').val())) { 1367 // $('#custom_link').after('<p class="error-message-field">Enter a valid URL.</p>'); 1368 // scrollToId('custom_link', scrollto); 1369 // scrollto = false; 1370 // valid = false; 1371 // } 1372 $('.error-message').html('').hide(); 1373 var myformData = new FormData(myForm[0]); 1374 myformData.append('action', 'pn_wp_frontend_review_link'); 1375 1376 $.ajax({ 1377 type: "POST", 1378 data: myformData, 1379 dataType: "json", 1380 url: ajaxurl, 1381 cache: false, 1382 processData: false, 1383 contentType: false, 1384 enctype: 'multipart/form-data', 1385 success: function (data) { 1386 if (data.error) { 1387 $('.error-message').html(data.message).show(); 1388 $('.success-message').html('').hide(); 1389 // $(window).scrollTop(0); 1390 jQuery('#loader-wrapper-ajax').hide(); 1391 } else { 1392 $('.success-message').html(data.message).show(); 1393 $('.error-message').html('').hide(); 1394 // $(window).scrollTop(0); 1395 jQuery('#loader-wrapper-ajax').hide(); 1396 alert(data.message); 1397 window.location.href = "/"; 1398 } 1399 } 1400 }); 1401 }); 1402}); 1403 1404jQuery(document).ready(function ($) { 1405 function setBillingCountryCode() { 1406 let savedCode = $("select[name='billing_countrycode']").find("option[selected]").val(); 1407 if (savedCode) { 1408 $("select[name='billing_countrycode']").val(savedCode).change(); 1409 } 1410 } 1411 // Run after a slight delay to ensure WooCommerce doesn't override the value 1412 setTimeout(setBillingCountryCode, 1000); 1413});
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.