0 ||
form.hasClass('et_bloom_form') ||
formElement.className.includes('bloom') ||
formElement.className.includes('et_bloom') ||
form.closest('[class*="bloom"]').length > 0) {
console.log('🌸 BLOOM FORM DETECTED via submit event');
var email = form.find('input[type="email"]').val();
var name = form.find('input[name="name"], input[name="first_name"]').val();
console.log('📧 Email:', email);
console.log('👤 Name:', name);
if (email) {
submitToReferralHero(email, name);
}
}
});
// Method 2: Button click detection
$(document).on('click', 'button[type="submit"], input[type="submit"]', function(e) {
var button = $(this);
var form = button.closest('form');
if (form.closest('.et_bloom_optin').length > 0 ||
button.closest('[class*="bloom"]').length > 0) {
console.log('🌸 BLOOM SUBMIT BUTTON CLICKED');
setTimeout(function() {
var email = form.find('input[type="email"]').val();
var name = form.find('input[name="name"], input[name="first_name"]').val();
console.log('📧 Email from button click:', email);
if (email) {
submitToReferralHero(email, name);
}
}, 500);
}
});
// Method 3: AJAX detection (for AJAX form submissions)
var originalAjax = $.ajax;
$.ajax = function(options) {
var originalSuccess = options.success;
options.success = function(data, textStatus, jqXHR) {
// Check if this looks like a Bloom AJAX submission
if (options.url && (options.url.includes('bloom') || options.url.includes('et_'))) {
console.log('🌸 BLOOM AJAX SUBMISSION DETECTED');
console.log('📡 AJAX options:', options);
// Try to extract email from POST data
if (options.data) {
var postData = options.data;
var email = '';
if (typeof postData === 'string') {
var emailMatch = postData.match(/email[^&]*=([^&]*)/);
if (emailMatch) {
email = decodeURIComponent(emailMatch[1]);
}
} else if (typeof postData === 'object') {
email = postData.email || postData.et_bloom_email || '';
}
console.log('📧 Email from AJAX:', email);
if (email) {
submitToReferralHero(email, '');
}
}
}
if (originalSuccess) {
originalSuccess.apply(this, arguments);
}
};
return originalAjax.apply(this, arguments);
};
// Method 4: DOM change detection for success messages
var observer = new MutationObserver(function(mutations) {
mutations.forEach(function(mutation) {
if (mutation.addedNodes.length > 0) {
$(mutation.addedNodes).each(function() {
var node = $(this);
// Check for Bloom success messages
if (node.hasClass('et_bloom_success_container') ||
node.find('.et_bloom_success_container').length > 0 ||
node.text().toLowerCase().includes('success') &&
node.closest('.et_bloom_optin').length > 0) {
console.log('🎉 BLOOM SUCCESS MESSAGE DETECTED');
// Try to find the email from the form
var bloomContainer = node.closest('.et_bloom_optin');
if (bloomContainer.length === 0) {
bloomContainer = $('.et_bloom_optin');
}
var email = bloomContainer.find('input[type="email"]').val();
console.log('📧 Email from success detection:', email);
if (email) {
submitToReferralHero(email, '');
}
}
});
}
});
});
observer.observe(document.body, {
childList: true,
subtree: true
});
// Debug info
setTimeout(function() {
console.log('🔍 Debug - Total forms:', $('form').length);
console.log('🔍 Debug - Bloom containers:', $('.et_bloom_optin').length);
console.log('🔍 Debug - Forms in Bloom containers:', $('.et_bloom_optin form').length);
$('.et_bloom_optin form').each(function(i) {
console.log('🔍 Bloom form ' + i + ':', this.className, this.id);
});
}, 2000);
});