Get in Touch
Have a question, feedback, or just want to say hello? Fill out the form below and we’ll get back to you shortly.
`; } else if (category === ‘bug’) { dynamicFieldsContainer.innerHTML = `
`; } } if (categorySelect) { categorySelect.addEventListener(‘change’, updateDynamicFields); updateDynamicFields(); } if (contactForm) { contactForm.addEventListener(‘submit’, function(e) { e.preventDefault(); var successEl = document.getElementById(‘contact-success’); var errorEl = document.getElementById(‘contact-error’); var submitBtn = contactForm.querySelector(‘button[type=”submit”]’); successEl.style.display = ‘none’; errorEl.style.display = ‘none’; submitBtn.disabled = true; submitBtn.textContent = ‘Sending…’; var payload = { name: document.getElementById(‘contact-name’).value, email: document.getElementById(‘contact-email’).value, category: document.getElementById(‘contact-category’).value, subject: document.getElementById(‘contact-subject’).value, message: document.getElementById(‘contact-message’).value }; if (payload.category === ‘refund’) { var orderIdEl = document.getElementById(‘contact-order-id’); var purchasedTestEl = document.getElementById(‘contact-purchased-test’); payload.order_id = orderIdEl ? orderIdEl.value : ”; payload.purchased_test = purchasedTestEl ? purchasedTestEl.value : ”; } else if (payload.category === ‘bug’) { var bugLocationEl = document.getElementById(‘contact-bug-location’); var bugStepsEl = document.getElementById(‘contact-bug-steps’); payload.bug_location = bugLocationEl ? bugLocationEl.value : ”; payload.bug_steps = bugStepsEl ? bugStepsEl.value : ”; payload.browser_info = ‘Browser: ‘ + navigator.userAgent + ‘ | Screen: ‘ + window.screen.width + ‘x’ + window.screen.height + ‘ | Viewport: ‘ + window.innerWidth + ‘x’ + window.innerHeight; } fetch(‘/wp-json/personalitopia/v1/contact/submit’, { method: ‘POST’, headers: { ‘Content-Type’: ‘application/json’, ‘X-WP-Nonce’: (window.personalitopiaAuthSettings && window.personalitopiaAuthSettings.nonce) || ” }, body: JSON.stringify(payload) }) .then(function(res) { return res.json().then(function(json) { return { ok: res.ok, data: json }; }); }) .then(function(resObj) { submitBtn.disabled = false; submitBtn.textContent = ‘Send Message’; if (resObj.ok) { successEl.textContent = resObj.data.message || ‘Thank you! Your message has been sent successfully.’; successEl.style.display = ‘block’; contactForm.reset(); updateDynamicFields(); // Reset dynamic fields } else { errorEl.textContent = resObj.data.message || ‘Failed to send message. Please try again.’; errorEl.style.display = ‘block’; } }) .catch(function(err) { submitBtn.disabled = false; submitBtn.textContent = ‘Send Message’; errorEl.textContent = ‘An error occurred. Please try again later.’; errorEl.style.display = ‘block’; console.error(err); }); }); } });
Loading discussion…