1 /* @v2-invisible-js:start */ 2 var c4wp_onloadCallback = function() { 3 for (var i = 0; i < document.forms.length; i++) { 4 var form = document.forms[i]; 5 var captcha_div = form.querySelector('.c4wp_captcha_field_div:not(.rendered)'); 6 7 if (null === captcha_div) { 8 continue; 9 } 10 if (!(captcha_div.offsetWidth || captcha_div.offsetHeight || captcha_div.getClientRects().length)) { 11 continue; 12 } 13 14 captcha_div.innerHTML = ''; 15 16 (function(form) { 17 var c4wp_captcha = grecaptcha.render(captcha_div, { 18 'sitekey': c4wpConfig.site_key, 19 'size': 'invisible', 20 'theme': c4wpConfig.theme, 21 'badge': c4wpConfig.badge, 22 'callback': function(token) { 23 var woo_checkout = form.classList.contains('woocommerce-checkout'); 24 var woo_login = form.getElementsByClassName('woocommerce-form-login__submit'); 25 var woo_register = form.getElementsByClassName('woocommerce-form-register__submit'); 26 var is_commentform = form.getAttribute('id'); 27 if (woo_checkout) { 28 form.setAttribute('data-captcha-valid', 'yes'); 29 if (typeof jQuery !== 'undefined') { 30 jQuery('.woocommerce-checkout').submit(); 31 } else { 32 form.submit(); 33 } 34 } else if (woo_login.length) { 35 form.setAttribute('data-captcha-valid', 'yes'); 36 form['login'].click(); 37 } else if (woo_register.length) { 38 form.setAttribute('data-captcha-valid', 'yes'); 39 form['register'].click(); 40 } else if ('commentform' === is_commentform) { 41 form.setAttribute('data-captcha-valid', 'yes'); 42 form['submit'].click(); 43 } else if (form.classList.contains('ac-form')) { 44 form.setAttribute('data-captcha-valid', 'yes'); 45 jQuery(form).find('[name="ac_form_submit"]').click(); 46 } else if (form.id == 'create-group-form') { 47 // Buddypress group. 48 form.setAttribute('data-captcha-valid', 'yes'); 49 jQuery(form).find('#group-creation-create').click(); 50 } else if (form.id == 'signup-form' && form.classList.contains('signup-form')) { 51 // Buddyboss. 52 form.setAttribute('data-captcha-valid', 'yes'); 53 jQuery(form).find('[type="submit"]').click(); 54 return true; 55 } else if (form.classList.contains('frm-fluent-form')) { 56 ; 57 form.setAttribute('data-captcha-valid', 'yes'); 58 jQuery(form).find('[type="submit"]').click(); 59 return true; 60 61 } else if (form.parentElement.classList.contains('nf-form-layout')) { 62 form.setAttribute('data-captcha-valid', 'yes'); 63 jQuery(form).find('[type="submit"]').click(); 64 return true; 65 } else if (typeof jQuery !== 'undefined' && jQuery('input[id*="c4wp-wc-checkout"]').length && token) { 66 // WC block checkout. 67 let input = document.querySelector('input[id*="c4wp-wc-checkout"]'); 68 let lastValue = input.value; 69 input.value = token; 70 let event = new Event('input', { 71 bubbles: true 72 }); 73 event.simulated = true; 74 let tracker = input._valueTracker; 75 if (tracker) { 76 tracker.setValue(lastValue); 77 } 78 input.dispatchEvent(event) 79 80 jQuery(form).find('.wc-block-components-checkout-place-order-button:not(.c4wp-submit)').click(); 81 } else if (form.id == '#setupform') { 82 form.setAttribute('data-captcha-valid', '
82yes'); 83 form.querySelector('.submit .submit').click(); 84 return; 85 } else if (form.classList.contains('elementor-form')) { 86 // Needs priming early below. 87 return false; 88 } else { 89 form.setAttribute('data-captcha-valid', 'yes'); 90 form.submit(); 91 } 92 93 // Apply relevant accessibility attributes to response. 94 var responseTextareas = document.querySelectorAll(".g-recaptcha-response"); 95 responseTextareas.forEach(function(textarea) { 96 textarea.setAttribute("aria-hidden", "true"); 97 textarea.setAttribute("aria-label", "do not use"); 98 textarea.setAttribute("aria-readonly", "true"); 99 }); 100 }, 101 'expired-callback': function() { 102 grecaptcha.reset(c4wp_captcha); 103 } 104 }); 105 106 // WC block checkout clone btn. 107 var wcblock_submit = form.querySelector('.wc-block-components-checkout-place-order-button'); 108 if (null !== wcblock_submit) { 109 clone = wcblock_submit.cloneNode(true); 110 clone.classList.add('c4wp-submit'); 111 clone.classList.add('c4wp-clone'); 112 clone.removeAttribute('onclick'); 113 clone.removeAttribute('onkeypress'); 114 if (wcblock_submit.parentElement.form === null) { 115 wcblock_submit.parentElement.prepend(clone); 116 } else { 117 wcblock_submit.parentElement.insertBefore(clone, wcblock_submit); 118 } 119 wcblock_submit.style.display = "none"; 120 121 clone.addEventListener('click', function(e) { 122 grecaptcha.execute(c4wp_captcha).then(function(data) { 123 form.classList.add('c4wp-primed'); 124 }); 125 }); 126 } 127 128 var elementor_submit = form.querySelector('.elementor-button[type="submit"]'); 129 if (null !== elementor_submit) { 130 131 grecaptcha.execute(c4wp_captcha).then(function(data) { 132 var responseElem = form.querySelector('.g-recaptcha-response'); 133 responseElem.setAttribute('value', data); 134 form.classList.add('c4wp-primed'); 135 }); 136 } 137 138 captcha_div.classList.add('rendered'); 139 140 141 eval(c4wpConfig.additional_js); 142 // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped 143 144 145 form.onsubmit = function(e) { 146 if ('yes' === form.getAttribute('data-captcha-valid')) { 147 return true; 148 } 149 150 e.preventDefault(); 151 grecaptcha.execute(c4wp_captcha); 152 return false; 153 }; 154 155 if (typeof jQuery !== 'undefined') { 156 // Remove and append badge on WP login screen. 157 jQuery('.login form.shake .grecaptcha-badge').appendTo('body'); 158 //, .ninja-forms-field[type="submit"] 159 jQuery('body').on('click', 'form:not(.c4wp-primed) .ff-btn-submit,form:not(.c4wp-primed) .everest-forms-submit-button', function(e) { 160 e.preventDefault(); 161 grecaptcha.execute(c4wp_captcha).then(function(data) { 162 var responseElem = form.querySelector('.g-recaptcha-response'); 163 responseElem.setAttribute('value', data); 164 form.classList.add('c4wp-primed'); 165 }); 166 }); 167 } 168 })(form); 169 } 170 }; 171 172 window.addEventListener("load", (event) => { 173 if (typeof jQuery !== 'undefined' && jQuery('input[id*="c4wp-wc-checkout"]').length) { 174 var element = document.createElement('div'); 175 var html = c4wpConfig.field_markup; 176 element.innerHTML = html; 177 jQuery('[class*="c4wp-wc-checkout"]').append(element); 178 jQuery('[class*="c4wp-wc-checkout"]').find('*').off(); 179 c4wp_onloadCallback(); 180 } 181 }); 182 /* @v2-invisible-js:end */
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.