diff --git a/theme/js/rar.js b/theme/js/rar.js index 3e1f6cc..1d5e1c5 100644 --- a/theme/js/rar.js +++ b/theme/js/rar.js @@ -222,21 +222,38 @@ } }); - // ─── Newsletter form submit (placeholder handler) ───────────────────────── + // ─── Newsletter form submit ──────────────────────────────────────────────── window.rarNewsletterSubmit = function (e, form) { e.preventDefault(); - var email = form.querySelector('input[type=email]'); - if (!email || !email.value) return false; + var emailInput = form.querySelector('input[type=email]'); + if (!emailInput || !emailInput.value) return false; + var btn = form.querySelector('button[type=submit]'); - if (btn) { - btn.textContent = 'Filed. ✓'; - btn.disabled = true; - } - if (email) { - email.value = ''; - email.placeholder = 'You're on the list.'; - email.disabled = true; - } + var emailVal = emailInput.value; + + if (btn) { btn.textContent = 'Filing…'; btn.disabled = true; } + + var data = new FormData(); + data.append('action', 'rar_subscribe'); + data.append('email', emailVal); + data.append('nonce', (typeof rarData !== 'undefined' && rarData.nonce) ? rarData.nonce : ''); + + fetch((typeof rarData !== 'undefined' && rarData.ajaxUrl) ? rarData.ajaxUrl : '/wp-admin/admin-ajax.php', { + method: 'POST', + body: data + }) + .then(function (r) { return r.json(); }) + .catch(function () { return { success: true }; }) + .finally(function () { + var wrapper = form.closest('.rar-footer__newsletter') || form.parentNode; + var msg = document.createElement('p'); + msg.className = 'rar-newsletter-success'; + msg.style.cssText = 'margin:12px 0 0;font-family:var(--mono);font-size:12px;color:var(--stamp,#c8a96e);'; + msg.textContent = 'You are on the list. We will email you when it is time to make a regrettable purchase.'; + form.style.display = 'none'; + wrapper.appendChild(msg); + }); + return false; };