1( function( $ ) { 2 3 $(window).on('load', function() { 4 5 waitForElm('#leaky-paywall-quick-register-form').then((elm) => { 6 7 $('#leaky-paywall-quick-register-form').submit(function(e) { 8 e.preventDefault(); 9 10 $('#leaky-paywall-quick-register-errors').html(''); 11 $('#leaky-paywall-quick-register-form input[type="submit"]').attr('disabled', true ).val(leaky_paywall_quick_register.continue_text); 12 13 const form_data = $("#leaky-paywall-quick-register-form").serialize(); 14 let email = $('#leaky-paywall-quick-register-form .email').val() || ''; 15 let password = $('#leaky-paywall-quick-register-form .password').val() || ''; 16 let first_name = $('#leaky-paywall-quick-register-form .first-name').val() || ''; 17 let last_name = $('#leaky-paywall-quick-register-form .last-name').val() || ''; 18 let username = $('#leaky-paywall-quick-register-form .username').val() || ''; 19 let level_id = $('#leaky-paywall-quick-register-form input[name="level_id"]').val() || ''; 20 let website = $('#leaky-paywall-quick-register-form input[name="company_url"]').val() || ''; 21 22 let formdata = { 23 email: email, 24 password: password, 25 first_name: first_name, 26 last_name: last_name, 27 username: username, 28 level_id: level_id, 29 company_url: website, 30 form_data: form_data, 31 post_id: get_nag_loc() 32 }; 33 34 fetch(leaky_paywall_quick_register.rest_url, { 35 method: 'POST', 36 credentials: 'same-origin', 37 headers: { 38 'Content-Type': 'application/json', 39 'X-WP-Nonce': leaky_paywall_quick_register.nonce, 40 }, 41 body: JSON.stringify({ 42 data: formdata 43 }) 44 }) 45 .then(response => response.json()) 46 .then(data => { 47 if (data.success) { 48 console.log('QR Success!'); 49 50 try { localStorage.removeItem('lp_viewed_content'); } catch(e) {} 51 52 const event = new CustomEvent('lpqrsuccess', { 53 detail: data 54 }); 55 document.dispatchEvent(event); 56 57 $('#leaky_paywall_message').html( data.response ); 58 59 setTimeout( function() { 60 window.location.replace( data.redirect_to ); 61 }, 2000 ); 62 63 } else { 64 console.error('QR Error:', data.message); 65 $('#leaky-paywall-quick-register-form input[type="submit"]').attr('disabled', false ).val(leaky_paywall_quick_register.submit_text); 66 67 $('#leaky-paywall-quick-register-errors').html('<p>' + data.message + '</p>'); 68 } 69 }) 70 .catch(error => { 71 console.error('QR Fetch Error:', error); 72 $('#leaky-paywall-quick-register-form input[type="submit"]').attr('disabled', false ).val(leaky_paywall_quick_register.submit_text); 73 $('#leaky-paywall-quick-register-errors').html('<p>An error occurred. Please try again.</p>'); 74 }); 75 76 }); 77 }); 78 79 80 }); 81 82 function get_nag_loc() { 83 84 let nag_loc = ''; 85 let bodyClasses = $('body').attr('class'); 86 87 if (!bodyClasses) { 88 return nag_loc; 89 } 90 91 bodyClasses = bodyClasses.split(' '); 92 93 $.each(bodyClasses, function(i, value) { 94 95 if ( !value.search('postid' ) ) { 96 97 let classArray = value.split('-'); 98 let post_id = parseInt( classArray[1] ); 99 100 if ( post_id > 0 ) { 101 nag_loc = post_id; 102 } 103 104 } 105 106 // for pages 107 if ( !value.search('page-id' ) ) { 108 109 let classArray = value.split('-'); 110 let post_id = parseInt( classArray[2] ); 111 112 if ( post_id > 0 ) { 113 nag_loc = post_id; 114 } 115 116 } 117 118 }); 119 120 return nag_loc; 121 122 } 123 124 function waitForElm(selector) { 125 return new Promise(resolve => { 126 if (document.querySelector(selector)) { 127 return resolve(document.querySelector(selector)); 128 } 129 130 const observer = new MutationObserver(mutations => { 131 if (document.querySelector(selector)) { 132 resolve(document.querySelector(selector)); 133 observer.disconnect(); 134 } 135 }); 136 137 observer.observe(document.body, { 138 childList: true, 139 subtree: true 140 }); 141 }); 142} 143 144 145})( jQuery );
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.