/** * Forminator Popup Fix v2 * Fixes Forminator forms not rendering inside Elementor popups. * Also handles Cloudflare Turnstile re-rendering in popup context. * Shed Homes - shed-homes.com.au */ jQuery(document).on('elementor/popup/show', function(event, id, instance) { setTimeout(function() { jQuery('form.forminator-custom-form[data-forminator-render="0"]').each(function() { var form = jQuery(this); var formId = form.attr('data-form-id'); if (!formId || form.hasClass('forminator-popup-fixed')) return; form.addClass('forminator-popup-fixed'); var scripts = document.querySelectorAll('script:not([src])'); for (var i = 0; i < scripts.length; i++) { var text = scripts[i].textContent; if (text.indexOf('forminator-module-' + formId) !== -1 && text.indexOf('.forminatorFront(') !== -1) { var startIdx = text.indexOf('.forminatorFront(') + '.forminatorFront('.length; var depth = 0; for (var j = startIdx; j < text.length; j++) { if (text[j] === '{') depth++; if (text[j] === '}') { depth--; if (depth === 0) { var endIdx = j + 1; break; } } } try { var settings = new Function('return ' + text.substring(startIdx, endIdx))(); form.css('display', ''); form.attr('data-forminator-render', '1'); form.closest('[data-forminator-render]').not(form).attr('data-forminator-render', '1'); form.addClass('forminator-initialized'); form.forminatorFront(settings); /* Re-render Turnstile widget inside the popup form */ var turnstileEl = form.find('.cf-turnstile')[0]; if (turnstileEl && window.turnstile) { setTimeout(function() { try { turnstile.remove(turnstileEl); } catch(e) {} turnstile.render(turnstileEl); }, 200); } } catch(e) { console.error('Forminator popup fix:', e); } break; } } }); }, 300); });