{"id":6021,"date":"2026-10-18T05:43:07","date_gmt":"2026-10-18T05:43:07","guid":{"rendered":"https:\/\/ilmifysstore.zuarder.com\/?page_id=6021"},"modified":"2026-10-18T06:17:42","modified_gmt":"2026-10-18T06:17:42","slug":"signin","status":"publish","type":"page","link":"https:\/\/ilmifysstore.zuarder.com\/index.php\/signin\/","title":{"rendered":"signin"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"6021\" class=\"elementor elementor-6021\" data-elementor-post-type=\"page\">\n\t\t\t\t<div class=\"elementor-element elementor-element-9928f99 e-flex e-con-boxed e-con e-parent\" data-id=\"9928f99\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t<div class=\"elementor-element elementor-element-d9a845b e-con-full e-flex e-con e-child\" data-id=\"d9a845b\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-905d898 elementor-widget elementor-widget-shortcode\" data-id=\"905d898\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"shortcode.default\">\n\t\t\t\t\t\t\t<div class=\"elementor-shortcode\"><link rel=\"preconnect\" href=\"https:\/\/fonts.googleapis.com\">\n<link rel=\"preconnect\" href=\"https:\/\/fonts.gstatic.com\" crossorigin>\n<link rel=\"stylesheet\" href=\"https:\/\/fonts.googleapis.com\/css2?family=DM+Sans:ital,opsz,wght@0,9..40,400;0,9..40,500;0,9..40,600;0,9..40,700&display=swap\">\n<style>\n.csp,.csp *,.csp input,.csp button{font-family:'DM Sans',sans-serif !important}\n.csp *{box-sizing:border-box}\n.csp{--o:#f58820;--bg:#f4f4f4;color:#222;max-width:1105px;margin:30px auto;background:#fff;border-radius:24px;box-shadow:0 10px 50px rgba(0,0,0,.08);padding:44px 44px 36px}\n.csp-view{display:none}.csp-view.on{display:block}\n.csp-head{display:flex;gap:14px;align-items:center;justify-content:center;margin-bottom:34px}\n.csp-logo{width:74px;height:74px;border-radius:18px;background:var(--o);display:flex;align-items:center;justify-content:center}\n.csp-head h2{margin:0;font-size:26px;font-weight:700;line-height:1.2}\n.csp-head p{margin:2px 0 0;font-size:16px}\n.csp-grid{display:grid;grid-template-columns:1fr 64px 1fr;align-items:stretch}\n.csp-box{background:var(--bg);border-radius:20px;padding:30px 34px;min-height:350px}\n.csp-box h3{margin:0 0 22px;font-size:18px;font-weight:600}\n.csp-or{position:relative;display:flex;align-items:center;justify-content:center}\n.csp-or:before{content:\"\";position:absolute;top:20px;bottom:20px;left:50%;width:1px;background:#eee}\n.csp-or span{position:relative;width:62px;height:62px;border-radius:50%;background:#fff;border:2px solid #f0f0f0;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:14px;color:#555}\n.csp-field{position:relative;margin-bottom:18px}\n.csp-field svg.i{position:absolute;left:18px;top:50%;transform:translateY(-50%);width:20px;height:20px;stroke:var(--o);fill:none;stroke-width:1.8}\n.csp-field input[type=text],.csp-field input[type=password],.csp-field input[type=tel]{width:100%;height:57px;border:0;border-radius:10px;background:#fff;padding:0 48px 0 52px;font-size:16px;color:#333;box-shadow:0 2px 6px rgba(0,0,0,.05);outline:0;margin:0}\n.csp-field input:focus{box-shadow:0 0 0 2px rgba(245,136,32,.35)}\n.csp-eye{position:absolute;right:16px;top:50%;transform:translateY(-50%);background:none !important;border:0;cursor:pointer;padding:0;display:flex}\n.csp-eye svg{width:20px;height:20px;stroke:#888;fill:none;stroke-width:1.8}\n.csp-btn{width:100%;height:53px;border:0;border-radius:10px;background:var(--o);color:#fff;font-size:16px;font-weight:600;cursor:pointer;transition:.2s}\n.csp-btn:hover{filter:brightness(.94)}\n.csp-btn:disabled{opacity:.6;cursor:not-allowed}\n.csp-link{background:none !important;border:0;color:var(--o);text-decoration:underline;cursor:pointer;font-size:14px;padding:0}\n.csp-link:disabled{opacity:.6;cursor:not-allowed}\n.csp-row{display:flex;justify-content:space-between;align-items:center;margin:-2px 0 18px;font-size:15px;color:#666}\n.csp-row label{display:flex;align-items:center;gap:8px;cursor:pointer}\n.csp-row a{color:var(--o)}\n.csp-msg{margin:12px 0 0;font-size:14px;min-height:20px}\n.csp-msg.err{color:#d63638}.csp-msg.ok{color:#1a8f3c}\n.csp-sep{display:flex;align-items:center;gap:16px;max-width:510px;margin:34px auto 18px;font-size:16px}\n.csp-sep:before,.csp-sep:after{content:\"\";flex:1;height:1px;background:#eee}\n.csp-gwrap{display:flex;justify-content:center}\n.csp-gbtn{width:60px;height:60px;border-radius:50%;background:#fff !important;border:1px solid #f0f0f0;box-shadow:0 3px 12px rgba(0,0,0,.08);display:flex;align-items:center;justify-content:center;cursor:pointer;padding:0;transition:.2s}\n.csp-gbtn:hover{box-shadow:0 4px 16px rgba(0,0,0,.14)}\n.csp-gbtn:disabled{opacity:.6;cursor:wait}\n.csp-switch{text-align:center;margin-top:12px;font-size:15px}\n.csp-switch a{color:var(--o);text-decoration:underline;cursor:pointer}\n.csp-hide{display:none}\n@media(max-width:820px){.csp{padding:26px 16px;border-radius:16px}.csp-grid{grid-template-columns:1fr}.csp-or{height:80px}.csp-or:before{top:50%;bottom:auto;left:10%;right:10%;width:auto;height:1px}.csp-box{min-height:0;padding:24px 18px}}\n<\/style>\n\n<div class=\"csp\" id=\"csp\">\n\n  <!-- ===================== SIGNIN VIEW ===================== -->\n  <div class=\"csp-view on\" data-view=\"signin\">\n    <div class=\"csp-head\"><div class=\"csp-logo\"><svg width=\"40\" height=\"40\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"#fff\" stroke-width=\"1.4\" stroke-linecap=\"round\"><circle cx=\"9\" cy=\"6\" r=\"3\"\/><path d=\"M3 20c0-3 1.5-5 4-6\"\/><circle cx=\"16\" cy=\"14\" r=\"2.5\"\/><path d=\"M18 15.5l3 3M20 17.5l-1.2 1.2\"\/><\/svg><\/div><div><h2>Signin<\/h2><p>Access your account securely<\/p><\/div><\/div>\n\n    <div class=\"csp-grid\">\n      <div class=\"csp-box\">\n        <h3>Login With Mobile Number<\/h3>\n        <div id=\"csp-phone-step\">\n          <div class=\"csp-field\"><svg class=\"i\" viewBox=\"0 0 24 24\"><rect x=\"7\" y=\"2\" width=\"10\" height=\"20\" rx=\"2\"\/><path d=\"M11 18h2\"\/><\/svg><input type=\"tel\" id=\"csp-phone\" placeholder=\"01*********\" maxlength=\"14\" autocomplete=\"tel\"><\/div>\n          <button class=\"csp-btn\" id=\"csp-send\">Send OTP<\/button>\n        <\/div>\n        <div id=\"csp-otp-step\" class=\"csp-hide\">\n          <div class=\"csp-field\"><svg class=\"i\" viewBox=\"0 0 24 24\"><rect x=\"5\" y=\"11\" width=\"14\" height=\"10\" rx=\"2\"\/><path d=\"M8 11V7a4 4 0 018 0v4\"\/><\/svg><input type=\"text\" id=\"csp-otp\" placeholder=\"Enter 6 digit OTP\" maxlength=\"6\" inputmode=\"numeric\" autocomplete=\"one-time-code\"><\/div>\n          <button class=\"csp-btn\" id=\"csp-verify\">Verify &amp; Login<\/button>\n          <p style=\"margin:12px 0 0;font-size:14px\">\n            <button class=\"csp-link\" id=\"csp-resend\" disabled>Resend OTP<\/button> &nbsp;|&nbsp; <button class=\"csp-link\" id=\"csp-change\">Change number<\/button>\n          <\/p>\n        <\/div>\n        <p class=\"csp-msg\" id=\"csp-msg-otp\"><\/p>\n      <\/div>\n\n      <div class=\"csp-or\"><span>OR<\/span><\/div>\n\n      <div class=\"csp-box\">\n        <h3>Login With Credentials<\/h3>\n        <div class=\"csp-field\"><svg class=\"i\" viewBox=\"0 0 24 24\"><circle cx=\"12\" cy=\"8\" r=\"4\"\/><path d=\"M4 21c0-4.4 3.6-7 8-7s8 2.6 8 7\"\/><\/svg><input type=\"text\" id=\"csp-id\" placeholder=\"Email or phone number\" autocomplete=\"username\"><\/div>\n        <div class=\"csp-field\"><svg class=\"i\" viewBox=\"0 0 24 24\"><rect x=\"5\" y=\"11\" width=\"14\" height=\"10\" rx=\"2\"\/><path d=\"M8 11V7a4 4 0 018 0v4\"\/><\/svg>          <input type=\"password\" id=\"csp-pass\" placeholder=\"Password\" autocomplete=\"current-password\">\n          <button type=\"button\" class=\"csp-eye\" data-eye=\"csp-pass\" aria-label=\"Show password\"><svg viewBox=\"0 0 24 24\"><path d=\"M1 12s4-7 11-7 11 7 11 7-4 7-11 7S1 12 1 12z\"\/><circle cx=\"12\" cy=\"12\" r=\"3\"\/><\/svg><\/button>\n        <\/div>\n        <div class=\"csp-row\">\n          <label><input type=\"checkbox\" id=\"csp-remember\"> Remember me<\/label>\n          <a href=\"https:\/\/ilmifysstore.zuarder.com\/index.php\/my-account\/lost-password\/\">Forgotten password?<\/a>\n        <\/div>\n        <button class=\"csp-btn\" id=\"csp-login\">Login<\/button>\n        <p class=\"csp-msg\" id=\"csp-msg-cred\"><\/p>\n      <\/div>\n    <\/div>\n\n    <div class=\"csp-sep\">or signin with<\/div>\n    <div class=\"csp-gwrap\"><button type=\"button\" class=\"csp-gbtn\" data-msg=\"csp-msg-g\" aria-label=\"Sign in with Google\"><svg viewBox=\"0 0 48 48\" width=\"26\" height=\"26\"><path fill=\"#EA4335\" d=\"M24 9.5c3.54 0 6.71 1.22 9.21 3.6l6.85-6.85C35.9 2.38 30.47 0 24 0 14.62 0 6.51 5.38 2.56 13.22l7.98 6.19C12.43 13.72 17.74 9.5 24 9.5z\"\/><path fill=\"#4285F4\" d=\"M46.98 24.55c0-1.57-.15-3.09-.38-4.55H24v9.02h12.94c-.58 2.96-2.26 5.48-4.78 7.18l7.73 6c4.51-4.18 7.09-10.36 7.09-17.65z\"\/><path fill=\"#FBBC05\" d=\"M10.53 28.59c-.48-1.45-.76-2.99-.76-4.59s.27-3.14.76-4.59l-7.98-6.19C.92 16.46 0 20.12 0 24c0 3.88.92 7.54 2.56 10.78l7.97-6.19z\"\/><path fill=\"#34A853\" d=\"M24 48c6.48 0 11.93-2.13 15.89-5.81l-7.73-6c-2.15 1.45-4.92 2.3-8.16 2.3-6.26 0-11.57-4.22-13.47-9.91l-7.98 6.19C6.51 42.62 14.62 48 24 48z\"\/><\/svg><\/button><\/div>\n    <p class=\"csp-msg\" id=\"csp-msg-g\" style=\"text-align:center\"><\/p>\n    <p class=\"csp-switch\">Don't have any account? <a href=\"#register\" data-go=\"register\">Register account<\/a><\/p>\n  <\/div>\n\n  <!-- ===================== REGISTER VIEW ===================== -->\n  <div class=\"csp-view \" data-view=\"register\">\n    <div class=\"csp-head\"><div class=\"csp-logo\"><svg width=\"40\" height=\"40\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"#fff\" stroke-width=\"1.4\" stroke-linecap=\"round\"><circle cx=\"9\" cy=\"6\" r=\"3\"\/><path d=\"M3 20c0-3 1.5-5 4-6\"\/><circle cx=\"16\" cy=\"14\" r=\"2.5\"\/><path d=\"M18 15.5l3 3M20 17.5l-1.2 1.2\"\/><\/svg><\/div><div><h2>Create New Account<\/h2><p>Register to get started<\/p><\/div><\/div>\n\n    <div class=\"csp-grid\">\n      <div class=\"csp-box\">\n        <h3>Signup With Mobile Number<\/h3>\n        <div id=\"cspr-phone-step\">\n          <div class=\"csp-field\"><svg class=\"i\" viewBox=\"0 0 24 24\"><rect x=\"7\" y=\"2\" width=\"10\" height=\"20\" rx=\"2\"\/><path d=\"M11 18h2\"\/><\/svg><input type=\"tel\" id=\"cspr-phone\" placeholder=\"01*********\" maxlength=\"14\" autocomplete=\"tel\"><\/div>\n          <button class=\"csp-btn\" id=\"cspr-send\">Send OTP<\/button>\n        <\/div>\n        <div id=\"cspr-otp-step\" class=\"csp-hide\">\n          <div class=\"csp-field\"><svg class=\"i\" viewBox=\"0 0 24 24\"><rect x=\"5\" y=\"11\" width=\"14\" height=\"10\" rx=\"2\"\/><path d=\"M8 11V7a4 4 0 018 0v4\"\/><\/svg><input type=\"text\" id=\"cspr-otp\" placeholder=\"Enter 6 digit OTP\" maxlength=\"6\" inputmode=\"numeric\" autocomplete=\"one-time-code\"><\/div>\n          <button class=\"csp-btn\" id=\"cspr-verify\">Verify &amp; Create Account<\/button>\n          <p style=\"margin:12px 0 0;font-size:14px\">\n            <button class=\"csp-link\" id=\"cspr-resend\" disabled>Resend OTP<\/button> &nbsp;|&nbsp; <button class=\"csp-link\" id=\"cspr-change\">Change number<\/button>\n          <\/p>\n        <\/div>\n        <p class=\"csp-msg\" id=\"cspr-msg-otp\"><\/p>\n      <\/div>\n\n      <div class=\"csp-or\"><span>OR<\/span><\/div>\n\n      <div class=\"csp-box\">\n        <h3>Register a new account<\/h3>\n        <div class=\"csp-field\"><svg class=\"i\" viewBox=\"0 0 24 24\"><circle cx=\"12\" cy=\"8\" r=\"4\"\/><path d=\"M4 21c0-4.4 3.6-7 8-7s8 2.6 8 7\"\/><\/svg><input type=\"text\" id=\"cspr-name\" placeholder=\"Full Name\" autocomplete=\"name\"><\/div>\n        <div class=\"csp-field\"><svg class=\"i\" viewBox=\"0 0 24 24\"><rect x=\"3\" y=\"5\" width=\"18\" height=\"14\" rx=\"2\"\/><path d=\"M3 7l9 6 9-6\"\/><\/svg><input type=\"text\" id=\"cspr-id\" placeholder=\"Email or Phone Number\" autocomplete=\"username\"><\/div>\n        <div class=\"csp-field csp-hide\" id=\"cspr-fotp-wrap\"><svg class=\"i\" viewBox=\"0 0 24 24\"><rect x=\"5\" y=\"11\" width=\"14\" height=\"10\" rx=\"2\"\/><path d=\"M8 11V7a4 4 0 018 0v4\"\/><\/svg><input type=\"text\" id=\"cspr-fotp\" placeholder=\"Enter 6 digit OTP\" maxlength=\"6\" inputmode=\"numeric\" autocomplete=\"one-time-code\"><\/div>\n        <div class=\"csp-field\"><svg class=\"i\" viewBox=\"0 0 24 24\"><rect x=\"5\" y=\"11\" width=\"14\" height=\"10\" rx=\"2\"\/><path d=\"M8 11V7a4 4 0 018 0v4\"\/><\/svg>          <input type=\"password\" id=\"cspr-pass\" placeholder=\"Password\" autocomplete=\"new-password\">\n          <button type=\"button\" class=\"csp-eye\" data-eye=\"cspr-pass\" aria-label=\"Show password\"><svg viewBox=\"0 0 24 24\"><path d=\"M1 12s4-7 11-7 11 7 11 7-4 7-11 7S1 12 1 12z\"\/><circle cx=\"12\" cy=\"12\" r=\"3\"\/><\/svg><\/button>\n        <\/div>\n        <div class=\"csp-field\"><svg class=\"i\" viewBox=\"0 0 24 24\"><path d=\"M12 21s-7-6.2-7-11a7 7 0 0114 0c0 4.8-7 11-7 11z\"\/><circle cx=\"12\" cy=\"10\" r=\"2.5\"\/><\/svg><input type=\"text\" id=\"cspr-address\" placeholder=\"Address\" autocomplete=\"street-address\"><\/div>\n        <button class=\"csp-btn\" id=\"cspr-submit\">Register account<\/button>\n        <p class=\"csp-msg\" id=\"cspr-msg-form\"><\/p>\n      <\/div>\n    <\/div>\n\n    <div class=\"csp-sep\">or signup with<\/div>\n    <div class=\"csp-gwrap\"><button type=\"button\" class=\"csp-gbtn\" data-msg=\"cspr-msg-g\" aria-label=\"Sign up with Google\"><svg viewBox=\"0 0 48 48\" width=\"26\" height=\"26\"><path fill=\"#EA4335\" d=\"M24 9.5c3.54 0 6.71 1.22 9.21 3.6l6.85-6.85C35.9 2.38 30.47 0 24 0 14.62 0 6.51 5.38 2.56 13.22l7.98 6.19C12.43 13.72 17.74 9.5 24 9.5z\"\/><path fill=\"#4285F4\" d=\"M46.98 24.55c0-1.57-.15-3.09-.38-4.55H24v9.02h12.94c-.58 2.96-2.26 5.48-4.78 7.18l7.73 6c4.51-4.18 7.09-10.36 7.09-17.65z\"\/><path fill=\"#FBBC05\" d=\"M10.53 28.59c-.48-1.45-.76-2.99-.76-4.59s.27-3.14.76-4.59l-7.98-6.19C.92 16.46 0 20.12 0 24c0 3.88.92 7.54 2.56 10.78l7.97-6.19z\"\/><path fill=\"#34A853\" d=\"M24 48c6.48 0 11.93-2.13 15.89-5.81l-7.73-6c-2.15 1.45-4.92 2.3-8.16 2.3-6.26 0-11.57-4.22-13.47-9.91l-7.98 6.19C6.51 42.62 14.62 48 24 48z\"\/><\/svg><\/button><\/div>\n    <p class=\"csp-msg\" id=\"cspr-msg-g\" style=\"text-align:center\"><\/p>\n    <p class=\"csp-switch\">Already have an account? <a href=\"#signin\" data-go=\"signin\">Sign in<\/a><\/p>\n  <\/div>\n<\/div>\n\n<script>\n(function(){\n  var C = {\"ajax\":\"https:\\\/\\\/ilmifysstore.zuarder.com\\\/wp-admin\\\/admin-ajax.php\",\"nonce\":\"cbc913e988\",\"googleId\":\"638974967075-1dh7efk4q4m8nq73f7t2l1hnc847d0av.apps.googleusercontent.com\"};\n  var $ = function(id){ return document.getElementById(id); };\n  var wrap = $('csp');\n\n  \/* ---------- helpers ---------- *\/\n  function post(action, data){\n    var fd = new FormData();\n    fd.append('action', action); fd.append('nonce', C.nonce);\n    for (var k in data) fd.append(k, data[k]);\n    return fetch(C.ajax, { method:'POST', body:fd, credentials:'same-origin' })\n      .then(function(r){ return r.json(); })\n      .catch(function(){ return { success:false, data:{ message:'Network error. Please try again.' } }; });\n  }\n  function msg(id, text, ok){ var e=$(id); if(!e) return; e.textContent=text||''; e.className='csp-msg '+(ok?'ok':'err'); }\n  function done(r){ if(r.success && r.data.redirect){ window.location.href = r.data.redirect; } }\n  function timer(btnId, sec){\n    var b=$(btnId), t; b.disabled=true; b.textContent='Resend OTP ('+sec+'s)';\n    t=setInterval(function(){\n      if(--sec<=0){ clearInterval(t); b.disabled=false; b.textContent='Resend OTP'; }\n      else b.textContent='Resend OTP ('+sec+'s)';\n    },1000);\n  }\n\n  \/* ---------- switch Signin <-> Register (no page reload) ---------- *\/\n  function show(v, push){\n    var views = wrap.querySelectorAll('.csp-view');\n    for (var i=0;i<views.length;i++) views[i].classList.toggle('on', views[i].getAttribute('data-view')===v);\n    if(push){ try{ history.replaceState(null,'','#'+v); }catch(e){} }\n  }\n  wrap.addEventListener('click', function(e){\n    var a = e.target.closest('[data-go]');\n    if(a){ e.preventDefault(); show(a.getAttribute('data-go'), true); }\n    var eyeBtn = e.target.closest('[data-eye]');\n    if(eyeBtn){ var p=$(eyeBtn.getAttribute('data-eye')); p.type = p.type==='password' ? 'text' : 'password'; }\n  });\n  var h = location.hash.replace('#','');\n  if(h==='register' || h==='signin') show(h, false);\n\n  \/* ---------- Signin: credentials ---------- *\/\n  function doLogin(){\n    var b=$('csp-login'); b.disabled=true; msg('csp-msg-cred','');\n    post('csp_login', { identity:$('csp-id').value.trim(), password:$('csp-pass').value, remember:$('csp-remember').checked?1:'' })\n      .then(function(r){\n        if(r.success){ msg('csp-msg-cred','Login successful...',true); done(r); }\n        else { msg('csp-msg-cred', r.data.message); b.disabled=false; }\n      });\n  }\n  $('csp-login').onclick = doLogin;\n  $('csp-pass').addEventListener('keydown', function(e){ if(e.key==='Enter') doLogin(); });\n\n  \/* ---------- Signin: mobile OTP ---------- *\/\n  function loginOtp(btn){\n    msg('csp-msg-otp',''); btn.disabled=true;\n    post('csp_send_otp', { phone:$('csp-phone').value }).then(function(r){\n      if(r.success){\n        $('csp-phone-step').classList.add('csp-hide'); $('csp-otp-step').classList.remove('csp-hide');\n        msg('csp-msg-otp', r.data.message, true); timer('csp-resend', r.data.resend||60); $('csp-otp').focus();\n      } else { msg('csp-msg-otp', r.data.message); if(btn.id==='csp-resend') btn.disabled=false; }\n      if(btn.id==='csp-send') btn.disabled=false;\n    });\n  }\n  $('csp-send').onclick   = function(){ loginOtp(this); };\n  $('csp-resend').onclick = function(){ loginOtp(this); };\n  $('csp-change').onclick = function(){\n    $('csp-otp-step').classList.add('csp-hide'); $('csp-phone-step').classList.remove('csp-hide'); msg('csp-msg-otp','');\n  };\n  $('csp-verify').onclick = function(){\n    var b=this; b.disabled=true; msg('csp-msg-otp','');\n    post('csp_verify_otp', { phone:$('csp-phone').value, otp:$('csp-otp').value }).then(function(r){\n      if(r.success){ msg('csp-msg-otp','Login successful...',true); done(r); }\n      else { msg('csp-msg-otp', r.data.message); b.disabled=false; }\n    });\n  };\n\n  \/* ---------- Register: mobile signup ---------- *\/\n  function regOtp(btn){\n    msg('cspr-msg-otp',''); btn.disabled=true;\n    post('csp_reg_otp', { phone:$('cspr-phone').value }).then(function(r){\n      if(r.success){\n        $('cspr-phone-step').classList.add('csp-hide'); $('cspr-otp-step').classList.remove('csp-hide');\n        msg('cspr-msg-otp', r.data.message, true); timer('cspr-resend', r.data.resend||60); $('cspr-otp').focus();\n      } else { msg('cspr-msg-otp', r.data.message); if(btn.id==='cspr-resend') btn.disabled=false; }\n      if(btn.id==='cspr-send') btn.disabled=false;\n    });\n  }\n  $('cspr-send').onclick   = function(){ regOtp(this); };\n  $('cspr-resend').onclick = function(){ regOtp(this); };\n  $('cspr-change').onclick = function(){\n    $('cspr-otp-step').classList.add('csp-hide'); $('cspr-phone-step').classList.remove('csp-hide'); msg('cspr-msg-otp','');\n  };\n  $('cspr-verify').onclick = function(){\n    var b=this; b.disabled=true; msg('cspr-msg-otp','');\n    post('csp_reg_verify', { phone:$('cspr-phone').value, otp:$('cspr-otp').value }).then(function(r){\n      if(r.success){ msg('cspr-msg-otp','Account created...',true); done(r); }\n      else { msg('cspr-msg-otp', r.data.message); b.disabled=false; }\n    });\n  };\n\n  \/* ---------- Register: form (email = instant, phone = OTP first) ---------- *\/\n  var otpMode = false, rbtn = $('cspr-submit');\n  $('cspr-id').addEventListener('input', function(){\n    otpMode=false; $('cspr-fotp-wrap').classList.add('csp-hide'); rbtn.textContent='Register account';\n  });\n  rbtn.onclick = function(){\n    rbtn.disabled = true; msg('cspr-msg-form','');\n    var data = {\n      name:$('cspr-name').value.trim(), identity:$('cspr-id').value.trim(),\n      password:$('cspr-pass').value, address:$('cspr-address').value.trim()\n    };\n    if(otpMode){\n      data.phone = data.identity; data.otp = $('cspr-fotp').value;\n      post('csp_reg_verify', data).then(function(r){\n        if(r.success){ msg('cspr-msg-form','Account created...',true); done(r); }\n        else { msg('cspr-msg-form', r.data.message); rbtn.disabled=false; }\n      });\n      return;\n    }\n    post('csp_register', data).then(function(r){\n      if(!r.success){ msg('cspr-msg-form', r.data.message); rbtn.disabled=false; return; }\n      if(r.data.need_otp){\n        otpMode = true; $('cspr-fotp-wrap').classList.remove('csp-hide'); $('cspr-fotp').focus();\n        rbtn.textContent='Verify & Register'; rbtn.disabled=false; msg('cspr-msg-form', r.data.message, true);\n      } else { msg('cspr-msg-form','Account created...',true); done(r); }\n    });\n  };\n\n  \/* ---------- Google Sign-In (Google Identity Services popup) ---------- *\/\n  var tokenClient = null, activeMsg = 'csp-msg-g';\n  var gbtns = wrap.querySelectorAll('.csp-gbtn');\n\n  function loadGoogle(){\n    if(!C.googleId) return;\n    var s = document.createElement('script');\n    s.src = 'https:\/\/accounts.google.com\/gsi\/client'; s.async = true; s.defer = true;\n    s.onload = function(){\n      tokenClient = google.accounts.oauth2.initTokenClient({\n        client_id: C.googleId,\n        scope: 'openid email profile',\n        callback: function(resp){\n          if(resp.error || !resp.access_token){\n            msg(activeMsg, 'Google sign-in was cancelled or failed.'); setGbtns(false); return;\n          }\n          post('csp_google', { access_token: resp.access_token }).then(function(r){\n            if(r.success){ msg(activeMsg,'Successful...',true); done(r); }\n            else { msg(activeMsg, r.data.message); setGbtns(false); }\n          });\n        },\n        error_callback: function(){ msg(activeMsg,'Could not open the Google popup. Please allow popups for this site.'); setGbtns(false); }\n      });\n    };\n    document.head.appendChild(s);\n  }\n  function setGbtns(dis){ for(var i=0;i<gbtns.length;i++) gbtns[i].disabled = dis; }\n\n  for(var i=0;i<gbtns.length;i++){\n    gbtns[i].onclick = function(){\n      activeMsg = this.getAttribute('data-msg'); msg(activeMsg,'');\n      if(!C.googleId){ msg(activeMsg,'Google Client ID is not set (Settings > Signin Page).'); return; }\n      if(!tokenClient){ msg(activeMsg,'Google is still loading. Please try again in a moment.'); return; }\n      setGbtns(true);\n      tokenClient.requestAccessToken({ prompt:'select_account' });\n    };\n  }\n  \/\/ Always read the latest nonce + Client ID from the server (works even when the page is cached).\n  var cfd = new FormData(); cfd.append('action','csp_config');\n  fetch(C.ajax, { method:'POST', body:cfd, credentials:'same-origin' })\n    .then(function(r){ return r.json(); })\n    .then(function(d){ if(d && d.success){ C.nonce = d.data.nonce; C.googleId = d.data.googleId; } })\n    .catch(function(){})\n    .then(loadGoogle);\n})();\n<\/script>\n        <\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"elementor_header_footer","meta":{"footnotes":""},"class_list":["post-6021","page","type-page","status-publish","hentry","page--item"],"_links":{"self":[{"href":"https:\/\/ilmifysstore.zuarder.com\/index.php\/wp-json\/wp\/v2\/pages\/6021","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/ilmifysstore.zuarder.com\/index.php\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/ilmifysstore.zuarder.com\/index.php\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/ilmifysstore.zuarder.com\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/ilmifysstore.zuarder.com\/index.php\/wp-json\/wp\/v2\/comments?post=6021"}],"version-history":[{"count":10,"href":"https:\/\/ilmifysstore.zuarder.com\/index.php\/wp-json\/wp\/v2\/pages\/6021\/revisions"}],"predecessor-version":[{"id":6033,"href":"https:\/\/ilmifysstore.zuarder.com\/index.php\/wp-json\/wp\/v2\/pages\/6021\/revisions\/6033"}],"wp:attachment":[{"href":"https:\/\/ilmifysstore.zuarder.com\/index.php\/wp-json\/wp\/v2\/media?parent=6021"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}