{"id":69,"date":"2025-09-01T19:44:13","date_gmt":"2025-09-01T19:44:13","guid":{"rendered":"https:\/\/donasinmotivoninecesidad.cl\/?page_id=69"},"modified":"2025-09-01T20:40:04","modified_gmt":"2025-09-01T20:40:04","slug":"registrarse","status":"publish","type":"page","link":"https:\/\/donasinmotivoninecesidad.cl\/en\/registrarse\/","title":{"rendered":"Registrarse"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"69\" class=\"elementor elementor-69\" data-elementor-post-type=\"page\">\n\t\t\t\t<div class=\"elementor-element elementor-element-e932aa9 e-flex e-con-boxed e-con e-parent\" data-id=\"e932aa9\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-df15afd elementor-widget elementor-widget-html\" data-id=\"df15afd\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<!-- ====== Widget HTML: Formulario de Registro (estilo unificado, con mensaje post-registro) ====== -->\r\n<section id=\"donasin-register\" aria-labelledby=\"reg-title\" data-redirect=\"\/mi-cuenta\/\">\r\n\r\n  <style>\r\n    \/* Scope-only: paleta clara + acento rojo, coherente con el resto del sitio *\/\r\n    #donasin-register{\r\n      --bg:#ffffff;\r\n      --card:#ffffff;\r\n      --soft:#f7f8fb;\r\n      --text:#111827;\r\n      --muted:#6b7280;\r\n      --accent:#e10600;  \/* rojo del proyecto *\/\r\n      color:var(--text);\r\n      background:var(--bg);\r\n      border-radius:18px;\r\n      padding:28px;\r\n      box-shadow:0 10px 22px rgba(17,24,39,.06);\r\n      border:1px solid #e5e7eb;\r\n      font:500 16px\/1.6 system-ui,-apple-system,Segoe UI,Roboto,Ubuntu,\"Helvetica Neue\",Arial;\r\n      max-width:720px; margin:0 auto;\r\n    }\r\n    #donasin-register h2{ margin:0 0 .6rem; font-size:clamp(22px,2.6vw,28px); color:var(--text) }\r\n    #donasin-register p.sub{ color:var(--muted); margin:.2rem 0 1rem }\r\n    #donasin-register .card{\r\n      background:linear-gradient(180deg,var(--card),var(--soft));\r\n      border:1px solid #e5e7eb; border-radius:16px; padding:18px;\r\n      box-shadow:0 6px 14px rgba(17,24,39,.04);\r\n    }\r\n    #donasin-register form{ display:grid; gap:14px; margin-top:6px }\r\n    #donasin-register label{ font-weight:700; font-size:.96rem; margin-bottom:.25rem; display:block }\r\n    #donasin-register .field{ display:flex; flex-direction:column }\r\n    #donasin-register input[type=\"text\"],\r\n    #donasin-register input[type=\"email\"]{\r\n      appearance:none; width:100%;\r\n      border:1px solid #e5e7eb; background:#fff;\r\n      border-radius:12px; padding:.78rem .9rem; font-size:1rem;\r\n      outline:none; transition:border-color .15s ease, box-shadow .15s ease;\r\n    }\r\n    #donasin-register input:focus{\r\n      border-color:var(--accent);\r\n      box-shadow:0 0 0 4px rgba(225,6,0,.10);\r\n    }\r\n    #donasin-register .row{ display:flex; align-items:center; justify-content:space-between; gap:10px; flex-wrap:wrap }\r\n    #donasin-register .agree{ display:flex; align-items:flex-start; gap:.55rem; color:var(--text); }\r\n    #donasin-register .agree input{ margin-top:.2rem }\r\n    #donasin-register .links{ display:flex; gap:12px; flex-wrap:wrap }\r\n    #donasin-register .links a{ color:var(--accent); text-decoration:none; font-weight:700 }\r\n    #donasin-register .links a:hover{ text-decoration:underline }\r\n    #donasin-register .cta{\r\n      display:inline-flex; align-items:center; justify-content:center; gap:.6rem;\r\n      background:var(--accent); color:#fff; font-weight:800; letter-spacing:.3px;\r\n      padding:.9rem 1.15rem; border-radius:14px; border:0; cursor:pointer;\r\n      box-shadow:0 10px 22px rgba(225,6,0,.18);\r\n      transition:transform .15s ease, box-shadow .15s ease; min-width:180px;\r\n    }\r\n    #donasin-register .cta[disabled]{ opacity:.6; cursor:not-allowed; box-shadow:none }\r\n    #donasin-register .cta:hover:not([disabled]){ transform:translateY(-1px); box-shadow:0 12px 26px rgba(225,6,0,.24) }\r\n    #donasin-register .note{ margin-top:10px; color:var(--muted); font-size:.92rem }\r\n    #donasin-register .alert{\r\n      border-left:4px solid var(--accent); background:#fff6f5; color:#7c1a16;\r\n      padding:.85rem 1rem; border-radius:10px; margin:.6rem 0 0;\r\n    }\r\n    #donasin-register .success{ display:none; padding:14px; border-radius:12px; background:#ecfdf5; color:#065f46; border:1px solid #a7f3d0 }\r\n    #donasin-register .error{ display:none; padding:14px; border-radius:12px; background:#fef2f2; color:#7f1d1d; border:1px solid #fecaca }\r\n    \/* Honeypot oculto para bots *\/\r\n    #donasin-register .hp{ position:absolute; left:-9999px; width:1px; height:1px; overflow:hidden }\r\n    @media (max-width:540px){ #donasin-register{ padding:22px } }\r\n  <\/style>\r\n\r\n  <header>\r\n    <h2 id=\"reg-title\">Crear cuenta<\/h2>\r\n    <p class=\"sub\">Reg\u00edstrate para guardar tu perfil y ver tu historial de donaciones.<\/p>\r\n  <\/header>\r\n\r\n  <div class=\"card\">\r\n    <!-- Mensajes din\u00e1micos -->\r\n    <div class=\"success\" aria-live=\"polite\">\r\n      <strong>\u00a1Registro iniciado!<\/strong> Te enviamos un correo electr\u00f3nico a\r\n      <strong class=\"email-destino\"><\/strong> para que <u>crees la contrase\u00f1a de tu cuenta<\/u>.\r\n      Revisa tu bandeja de entrada y, si no lo ves, la carpeta de <em>correo no deseado \/ SPAM<\/em>.\r\n      Luego podr\u00e1s <a href=\"\/wp-login.php\">iniciar sesi\u00f3n<\/a>.\r\n    <\/div>\r\n    <div class=\"error\" aria-live=\"assertive\"><\/div>\r\n\r\n    <!-- Formulario de alta (se env\u00eda por AJAX a \/wp-login.php?action=register para permanecer en esta p\u00e1gina) -->\r\n    <form id=\"register-form\" action=\"\/wp-login.php?action=register\" method=\"post\" novalidate>\r\n      <div class=\"field\">\r\n        <label for=\"user_login\">Nombre de usuario<\/label>\r\n        <input id=\"user_login\" name=\"user_login\" type=\"text\" autocomplete=\"username\" required\r\n               placeholder=\"tuusuario\" minlength=\"3\" \/>\r\n      <\/div>\r\n\r\n      <div class=\"field\">\r\n        <label for=\"user_email\">Correo electr\u00f3nico<\/label>\r\n        <input id=\"user_email\" name=\"user_email\" type=\"email\" autocomplete=\"email\" required\r\n               placeholder=\"tucorreo@dominio.com\" \/>\r\n      <\/div>\r\n\r\n      <!-- Honeypot anti-bot -->\r\n      <div class=\"hp\" aria-hidden=\"true\">\r\n        <label for=\"website\">Deja este campo vac\u00edo<\/label>\r\n        <input id=\"website\" name=\"website\" type=\"text\" tabindex=\"-1\" autocomplete=\"off\" \/>\r\n      <\/div>\r\n\r\n      <div class=\"row\">\r\n        <label class=\"agree\">\r\n          <input id=\"agree\" type=\"checkbox\" required \/>\r\n          <span>Acepto los <a href=\"\/terminos\/\" target=\"_blank\" rel=\"noopener\">T\u00e9rminos y Condiciones<\/a> y la <a href=\"\/privacidad\/\" target=\"_blank\" rel=\"noopener\">Pol\u00edtica de Privacidad<\/a>.<\/span>\r\n        <\/label>\r\n\r\n        <div class=\"links\">\r\n          <a href=\"https:\/\/donasinmotivoninecesidad.cl\/login\/\">\u00bfYa tienes cuenta? Inicia sesi\u00f3n<\/a>\r\n        <\/div>\r\n      <\/div>\r\n\r\n      <!-- Campos ocultos para WordPress -->\r\n      <input type=\"hidden\" name=\"redirect_to\" value=\"\/mi-cuenta\/\" \/>\r\n      <input type=\"hidden\" name=\"testcookie\" value=\"1\" \/>\r\n      <input type=\"hidden\" name=\"wp-submit\" value=\"Registrarse\" \/>\r\n\r\n      <button id=\"submit-btn\" class=\"cta\" type=\"submit\" disabled>Registrarme<\/button>\r\n\r\n      <p class=\"note\">\r\n        Tras registrarte, te enviaremos un correo para que <strong>establezcas tu contrase\u00f1a<\/strong> de acceso.\r\n      <\/p>\r\n    <\/form>\r\n  <\/div>\r\n\r\n  <script>\r\n    (function(){\r\n      var wrap = document.getElementById('donasin-register');\r\n      if(!wrap) return;\r\n      var form = document.getElementById('register-form');\r\n      var btn  = document.getElementById('submit-btn');\r\n      var ok   = wrap.querySelector('.success');\r\n      var err  = wrap.querySelector('.error');\r\n      var emailSpan = wrap.querySelector('.email-destino');\r\n\r\n      \/\/ Redirecci\u00f3n configurable post-login (no se usa en el mensaje, pero se guarda en el form)\r\n      var redirect = wrap.getAttribute('data-redirect') || '\/mi-cuenta\/';\r\n      var redInput = form.querySelector('input[name=\"redirect_to\"]');\r\n      if(redInput) redInput.value = redirect;\r\n\r\n      \/\/ Habilitar bot\u00f3n solo cuando hay usuario, email y t\u00e9rminos aceptados\r\n      function toggleButton(){\r\n        var u = form.user_login.value.trim();\r\n        var e = form.user_email.value.trim();\r\n        var a = document.getElementById('agree').checked;\r\n        btn.disabled = !(u.length >= 3 && e.includes('@') && a);\r\n      }\r\n      form.addEventListener('input', toggleButton);\r\n      form.addEventListener('change', toggleButton);\r\n      toggleButton();\r\n\r\n      \/\/ Si llegamos con ?checkemail=registered (por si alg\u00fan plugin redirige de vuelta), mostramos el mensaje\r\n      try{\r\n        var params = new URLSearchParams(location.search);\r\n        if(params.get('checkemail') === 'registered'){\r\n          var lastEmail = sessionStorage.getItem('donasin_reg_email') || '';\r\n          if(emailSpan){ emailSpan.textContent = lastEmail; }\r\n          ok.style.display = 'block';\r\n          form.style.display = 'none';\r\n        }\r\n      }catch(_e){}\r\n\r\n      \/\/ Utilidad: limpiar HTML de errores que devuelve WP\r\n      function stripHTML(html){\r\n        var tmp = document.createElement('div');\r\n        tmp.innerHTML = html;\r\n        return (tmp.textContent || tmp.innerText || '').replace(\/\\s+\\n\/g,'\\n').trim();\r\n      }\r\n\r\n      \/\/ Env\u00edo por AJAX: permanecemos en la p\u00e1gina y mostramos el mensaje si WP confirma el registro\r\n      form.addEventListener('submit', function(ev){\r\n        ev.preventDefault();\r\n        err.style.display = 'none'; err.textContent = '';\r\n        ok.style.display = 'none';\r\n\r\n        \/\/ Honeypot\r\n        if(form.website && form.website.value){\r\n          err.textContent = 'Error de validaci\u00f3n. Intenta nuevamente.';\r\n          err.style.display = 'block';\r\n          return;\r\n        }\r\n\r\n        \/\/ Estado de env\u00edo\r\n        var originalBtnText = btn.textContent;\r\n        btn.disabled = true;\r\n        btn.textContent = 'Enviando\u2026';\r\n\r\n        var fd = new FormData(form);\r\n\r\n        \/\/ Guarda el email en sessionStorage para usarlo en el mensaje (y en recargas)\r\n        var emailValue = (form.user_email.value || '').trim();\r\n        try{ sessionStorage.setItem('donasin_reg_email', emailValue); }catch(_e){}\r\n\r\n        \/\/ Enviamos al endpoint nativo de WP\r\n        fetch(form.action, {\r\n          method: 'POST',\r\n          body: fd,\r\n          credentials: 'same-origin', \/\/ importante para cookies de WP\r\n          redirect: 'follow'\r\n        }).then(async function(res){\r\n          var finalURL = (res && res.url) ? res.url : '';\r\n          var html = await res.text();\r\n\r\n          \/\/ \u00bf\u00c9xito? WP suele redirigir a wp-login.php?checkemail=registered\r\n          var success =\r\n            (finalURL && finalURL.indexOf('checkemail=registered') !== -1) ||\r\n            \/checkemail=registered\/i.test(html) ||\r\n            \/registration complete|check your email|hemos enviado un correo\/i.test(html);\r\n\r\n          if(success){\r\n            if(emailSpan){ emailSpan.textContent = emailValue; }\r\n            ok.style.display = 'block';\r\n            form.style.display = 'none';\r\n            btn.textContent = originalBtnText; \/\/ no visible, pero por coherencia\r\n            return;\r\n          }\r\n\r\n          \/\/ Si hay errores, WP devuelve un bloque con id=\"login_error\"\r\n          var m = html.match(\/<div[^>]*id=[\"']login_error[\"'][^>]*>([\\s\\S]*?)<\\\/div>\/i);\r\n          if(m && m[1]){\r\n            err.textContent = stripHTML(m[1]);\r\n            err.style.display = 'block';\r\n            btn.disabled = false;\r\n            btn.textContent = originalBtnText;\r\n            return;\r\n          }\r\n\r\n          \/\/ Caso no reconocido: mostramos mensaje gen\u00e9rico\r\n          err.textContent = 'No se pudo completar el registro. Intenta nuevamente.';\r\n          err.style.display = 'block';\r\n          btn.disabled = false;\r\n          btn.textContent = originalBtnText;\r\n        }).catch(function(){\r\n          \/\/ Fallback: si AJAX falla (CORS\/Firewall), hacemos env\u00edo normal\r\n          form.submit();\r\n        });\r\n      });\r\n    })();\r\n  <\/script>\r\n<\/section>\r\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":"<p>Crear cuenta Reg\u00edstrate para guardar tu perfil y ver tu historial de donaciones. \u00a1Registro iniciado! Te enviamos un correo electr\u00f3nico a para que crees la contrase\u00f1a de tu cuenta. Revisa tu bandeja de entrada y, si no lo ves, la carpeta de correo no deseado \/ SPAM. Luego podr\u00e1s iniciar sesi\u00f3n. Nombre de usuario Correo [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"give_campaign_id":0,"footnotes":""},"class_list":["post-69","page","type-page","status-publish","hentry"],"campaignId":"","_links":{"self":[{"href":"https:\/\/donasinmotivoninecesidad.cl\/en\/wp-json\/wp\/v2\/pages\/69","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/donasinmotivoninecesidad.cl\/en\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/donasinmotivoninecesidad.cl\/en\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/donasinmotivoninecesidad.cl\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/donasinmotivoninecesidad.cl\/en\/wp-json\/wp\/v2\/comments?post=69"}],"version-history":[{"count":10,"href":"https:\/\/donasinmotivoninecesidad.cl\/en\/wp-json\/wp\/v2\/pages\/69\/revisions"}],"predecessor-version":[{"id":85,"href":"https:\/\/donasinmotivoninecesidad.cl\/en\/wp-json\/wp\/v2\/pages\/69\/revisions\/85"}],"wp:attachment":[{"href":"https:\/\/donasinmotivoninecesidad.cl\/en\/wp-json\/wp\/v2\/media?parent=69"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}