{"id":56118,"date":"2026-03-06T20:00:15","date_gmt":"2026-03-06T20:00:15","guid":{"rendered":"https:\/\/app.laclavedebarrio.com\/?page_id=56118"},"modified":"2026-08-01T09:45:52","modified_gmt":"2026-08-01T09:45:52","slug":"forgot-password","status":"publish","type":"page","link":"https:\/\/laclavedebarrio.com\/es\/forgot-password\/","title":{"rendered":"Forgot Password"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"56118\" class=\"elementor elementor-56118\" data-elementor-post-type=\"page\">\n\t\t\t\t<div class=\"elementor-element elementor-element-7cd4a27 e-flex e-con-boxed e-con e-parent\" data-id=\"7cd4a27\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t<div class=\"elementor-element elementor-element-679c801 e-con-full e-flex e-con e-child\" data-id=\"679c801\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;gradient&quot;}\">\n\t\t<div class=\"elementor-element elementor-element-394ebda e-con-full e-flex e-con e-child\" data-id=\"394ebda\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-6ad7cd2 lcdb-t-hero1-50 elementor-widget elementor-widget-heading\" data-id=\"6ad7cd2\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h1 class=\"elementor-heading-title elementor-size-default\">Forgot your password?<\/h1>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-138f0cb lcdb-t-hero3 elementor-widget elementor-widget-text-editor\" data-id=\"138f0cb\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<p><span style=\"font-weight: 400;\">Enter your email and we\u2019ll send you a reset link.<\/span><\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-93bd979 e-con-full e-flex e-con e-child\" data-id=\"93bd979\" data-element_type=\"container\" data-e-type=\"container\" id=\"lcdbStillNoLuck\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t<div class=\"elementor-element elementor-element-0183c59 lcdb-t-iconbox elementor-view-default elementor-position-block-start elementor-mobile-position-block-start elementor-widget elementor-widget-icon-box\" data-id=\"0183c59\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"icon-box.default\">\n\t\t\t\t\t\t\t<div class=\"elementor-icon-box-wrapper\">\n\n\t\t\t\t\t\t<div class=\"elementor-icon-box-icon\">\n\t\t\t\t<a href=\"https:\/\/laclavedebarrio.com\/es\/contact-us\/\" class=\"elementor-icon\" tabindex=\"-1\" aria-label=\"Still no luck?\">\n\t\t\t\t<svg aria-hidden=\"true\" class=\"e-font-icon-svg e-fas-info-circle\" viewBox=\"0 0 512 512\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path d=\"M256 8C119.043 8 8 119.083 8 256c0 136.997 111.043 248 248 248s248-111.003 248-248C504 119.083 392.957 8 256 8zm0 110c23.196 0 42 18.804 42 42s-18.804 42-42 42-42-18.804-42-42 18.804-42 42-42zm56 254c0 6.627-5.373 12-12 12h-88c-6.627 0-12-5.373-12-12v-24c0-6.627 5.373-12 12-12h12v-64h-12c-6.627 0-12-5.373-12-12v-24c0-6.627 5.373-12 12-12h64c6.627 0 12 5.373 12 12v100h12c6.627 0 12 5.373 12 12v24z\"><\/path><\/svg>\t\t\t\t<\/a>\n\t\t\t<\/div>\n\t\t\t\n\t\t\t\t\t\t<div class=\"elementor-icon-box-content\">\n\n\t\t\t\t\t\t\t\t\t<h3 class=\"elementor-icon-box-title\">\n\t\t\t\t\t\t<a href=\"https:\/\/laclavedebarrio.com\/es\/contact-us\/\" >\n\t\t\t\t\t\t\tStill no luck?\t\t\t\t\t\t<\/a>\n\t\t\t\t\t<\/h3>\n\t\t\t\t\n\t\t\t\t\n\t\t\t<\/div>\n\t\t\t\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-e8393f3 elementor-align-center lcdb-t-hero4 elementor-widget elementor-widget-button\" data-id=\"e8393f3\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"button.default\">\n\t\t\t\t\t\t\t\t\t\t<a class=\"elementor-button elementor-button-link elementor-size-sm\" href=\"https:\/\/laclavedebarrio.com\/es\/contact-us\/\">\n\t\t\t\t\t\t<span class=\"elementor-button-content-wrapper\">\n\t\t\t\t\t\t\t\t\t<span class=\"elementor-button-text\">Contact us for help<\/span>\n\t\t\t\t\t<\/span>\n\t\t\t\t\t<\/a>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-e90f5fa e-con-full e-flex e-con e-child\" data-id=\"e90f5fa\" data-element_type=\"container\" data-e-type=\"container\" id=\"lcdbMaxReached\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t<div class=\"elementor-element elementor-element-fbb28d2 lcdb-t-iconbox elementor-view-default elementor-position-block-start elementor-mobile-position-block-start elementor-widget elementor-widget-icon-box\" data-id=\"fbb28d2\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"icon-box.default\">\n\t\t\t\t\t\t\t<div class=\"elementor-icon-box-wrapper\">\n\n\t\t\t\t\t\t<div class=\"elementor-icon-box-icon\">\n\t\t\t\t<a href=\"https:\/\/laclavedebarrio.com\/es\/contact-us\/\" class=\"elementor-icon\" tabindex=\"-1\" aria-label=\"You&#039;ve already requested the verification email several times. If you still haven&#039;t received it, please contact us so we can help.\">\n\t\t\t\t<svg aria-hidden=\"true\" class=\"e-font-icon-svg e-fas-info-circle\" viewBox=\"0 0 512 512\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path d=\"M256 8C119.043 8 8 119.083 8 256c0 136.997 111.043 248 248 248s248-111.003 248-248C504 119.083 392.957 8 256 8zm0 110c23.196 0 42 18.804 42 42s-18.804 42-42 42-42-18.804-42-42 18.804-42 42-42zm56 254c0 6.627-5.373 12-12 12h-88c-6.627 0-12-5.373-12-12v-24c0-6.627 5.373-12 12-12h12v-64h-12c-6.627 0-12-5.373-12-12v-24c0-6.627 5.373-12 12-12h64c6.627 0 12 5.373 12 12v100h12c6.627 0 12 5.373 12 12v24z\"><\/path><\/svg>\t\t\t\t<\/a>\n\t\t\t<\/div>\n\t\t\t\n\t\t\t\t\t\t<div class=\"elementor-icon-box-content\">\n\n\t\t\t\t\t\t\t\t\t<h3 class=\"elementor-icon-box-title\">\n\t\t\t\t\t\t<a href=\"https:\/\/laclavedebarrio.com\/es\/contact-us\/\" >\n\t\t\t\t\t\t\tYou've already requested the verification email several times. If you still haven't received it, please contact us so we can help.\t\t\t\t\t\t<\/a>\n\t\t\t\t\t<\/h3>\n\t\t\t\t\n\t\t\t\t\n\t\t\t<\/div>\n\t\t\t\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-6db4e73 elementor-align-center lcdb-t-hero4 elementor-widget elementor-widget-button\" data-id=\"6db4e73\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"button.default\">\n\t\t\t\t\t\t\t\t\t\t<a class=\"elementor-button elementor-button-link elementor-size-sm\" href=\"https:\/\/laclavedebarrio.com\/es\/contact-us\/\">\n\t\t\t\t\t\t<span class=\"elementor-button-content-wrapper\">\n\t\t\t\t\t\t\t\t\t<span class=\"elementor-button-text\">Contact us<\/span>\n\t\t\t\t\t<\/span>\n\t\t\t\t\t<\/a>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-1976f33 lcdb-t-auto elementor-widget elementor-widget-html\" data-id=\"1976f33\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<div id=\"lcdbPwdResetForm\" style=\"display:flex; flex-direction:column; align-items:center; gap:14px; margin:0 auto; max-width:380px;\">\r\n  <input\r\n    type=\"email\"\r\n    id=\"lcdbPwdResetEmail\"\r\n    placeholder=\"Enter your email\"\r\n    autocomplete=\"email\"\r\n    style=\"width:100%; padding:8px 12px; background:#fff; border:1px solid rgba(250,250,250,0.3); border-radius:8px; color:#FAFAFA; font-family:'Montserrat',sans-serif; font-size:14px; box-sizing:border-box;\"\r\n  \/>\r\n  <button\r\n    id=\"lcdbPwdResetBtn\"\r\n    style=\"font-family:'Montserrat',sans-serif; font-weight:800; font-size:16px; color:#fff; background:#00A9A5; border:none; padding:13px 28px; border-radius:8px; cursor:pointer;\"\r\n  >\r\n    Send reset link\r\n  <\/button>\r\n \r\n  <div id=\"lcdbPwdResetPersistent\"><\/div>\r\n  <div id=\"lcdbPwdResetMessage\"><\/div>\r\n<\/div>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-5c4f727 elementor-align-center lcdb-t-hero4 elementor-widget elementor-widget-button\" data-id=\"5c4f727\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"button.default\">\n\t\t\t\t\t\t\t\t\t\t<a class=\"elementor-button elementor-button-link elementor-size-sm\" href=\"https:\/\/laclavedebarrio.com\/es\/my-account\/\">\n\t\t\t\t\t\t<span class=\"elementor-button-content-wrapper\">\n\t\t\t\t\t\t\t\t\t<span class=\"elementor-button-text\">Back to Home<\/span>\n\t\t\t\t\t<\/span>\n\t\t\t\t\t<\/a>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-d172164 lcdb-t-auto elementor-widget elementor-widget-html\" data-id=\"d172164\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<script>\r\ndocument.addEventListener(\"DOMContentLoaded\", function(){\r\n    const form = document.getElementById(\"lcdbPwdResetForm\");\r\n    const emailInput = document.getElementById(\"lcdbPwdResetEmail\");\r\n    const btn = document.getElementById(\"lcdbPwdResetBtn\");\r\n    const msgEl = document.getElementById(\"lcdbPwdResetMessage\");\r\n    const persistentEl = document.getElementById(\"lcdbPwdResetPersistent\");\r\n    const stillNoLuckEl = document.getElementById(\"lcdbPwdStillNoLuck\");\r\n    const maxReachedEl = document.getElementById(\"lcdbPwdMaxReached\");\r\n    if(!form || !btn || !emailInput || !msgEl) return;\r\n\r\n    const COOLDOWN_SECONDS = 180;\r\n    const STORAGE_KEY_PREFIX = \"lcdb_pwdreset_cooldown_until_\";\r\n    const STILL_NO_LUCK_THRESHOLD = 2;\r\n    const MAX_RESENDS = 5;\r\n\r\n    const baseMessageStyle = {\r\n        fontFamily: \"'Montserrat', sans-serif\",\r\n        fontWeight: \"500\",\r\n        fontSize: \"15px\",\r\n        padding: \"12px 18px\",\r\n        borderRadius: \"8px\",\r\n        display: \"block\",\r\n        marginTop: \"4px\",\r\n        textAlign: \"center\"\r\n    };\r\n\r\n    let cooldownInterval = null;\r\n    let currentEmail = \"\";\r\n\r\n    function storageKey(email){\r\n        return STORAGE_KEY_PREFIX + (email || \"\").toLowerCase();\r\n    }\r\n\r\n    function showMessage(state, text){\r\n        Object.assign(msgEl.style, baseMessageStyle);\r\n        msgEl.innerText = text;\r\n\r\n        if(state === \"info\" || state === \"success\"){\r\n            msgEl.style.background = \"rgba(0, 169, 165, 0.12)\";\r\n            msgEl.style.color = \"#00A9A5\";\r\n        } else if(state === \"error\"){\r\n            msgEl.style.background = \"rgba(229, 75, 75, 0.12)\";\r\n            msgEl.style.color = \"#f0a5a5\";\r\n        }\r\n    }\r\n\r\n    function showPersistent(text){\r\n        Object.assign(persistentEl.style, baseMessageStyle);\r\n        persistentEl.style.background = \"rgba(0, 169, 165, 0.12)\";\r\n        persistentEl.style.color = \"#00A9A5\";\r\n        persistentEl.innerText = text;\r\n    }\r\n\r\n    function clearMessage(){\r\n        msgEl.innerText = \"\";\r\n        msgEl.removeAttribute(\"style\");\r\n    }\r\n\r\n    function clearPersistent(){\r\n        persistentEl.innerText = \"\";\r\n        persistentEl.removeAttribute(\"style\");\r\n    }\r\n\r\n    function formatTime(seconds){\r\n        const m = Math.floor(seconds \/ 60);\r\n        const s = seconds % 60;\r\n        return m + \":\" + (s < 10 ? \"0\" : \"\") + s;\r\n    }\r\n\r\n    function updateHelpUI(resendCount){\r\n        if(resendCount >= MAX_RESENDS){\r\n            if(cooldownInterval){\r\n                clearInterval(cooldownInterval);\r\n                cooldownInterval = null;\r\n            }\r\n            try { localStorage.removeItem(storageKey(currentEmail)); } catch(e) {}\r\n\r\n            form.style.display = \"none\";\r\n            if(stillNoLuckEl) stillNoLuckEl.style.display = \"none\";\r\n            if(maxReachedEl) maxReachedEl.style.display = \"block\";\r\n        } else if(resendCount >= STILL_NO_LUCK_THRESHOLD){\r\n            if(stillNoLuckEl) stillNoLuckEl.style.display = \"block\";\r\n            if(maxReachedEl) maxReachedEl.style.display = \"none\";\r\n        } else {\r\n            if(stillNoLuckEl) stillNoLuckEl.style.display = \"none\";\r\n            if(maxReachedEl) maxReachedEl.style.display = \"none\";\r\n        }\r\n    }\r\n\r\n    function startCooldown(untilTimestamp){\r\n        try { localStorage.setItem(storageKey(currentEmail), untilTimestamp); } catch(e) {}\r\n        btn.disabled = true;\r\n        emailInput.disabled = true;\r\n\r\n        \/\/ Mostrar mensaje persistente \"If an account exists...\"\r\n        showPersistent((document.documentElement.lang||'').toLowerCase().indexOf('es')===0 ? 'Si existe una cuenta con ese correo electr\u00f3nico, se ha enviado un enlace de restablecimiento. Revisa tu bandeja de entrada y la carpeta de spam.' : \"If an account exists with that email, a reset link has been sent. Check your inbox and spam folder.\");\r\n\r\n        function tick(){\r\n            const remaining = Math.ceil((untilTimestamp - Date.now()) \/ 1000);\r\n            if(remaining <= 0){\r\n                clearInterval(cooldownInterval);\r\n                cooldownInterval = null;\r\n                try { localStorage.removeItem(storageKey(currentEmail)); } catch(e) {}\r\n                btn.disabled = false;\r\n                emailInput.disabled = false;\r\n                clearPersistent();\r\n                showMessage(\"info\", \"You can request another reset link now.\");\r\n                return;\r\n            }\r\n            showMessage(\"info\", ((document.documentElement.lang||'').toLowerCase().indexOf('es')===0 ? 'Reenv\u00edo disponible en ' : \"Resend available in \") + formatTime(remaining));\r\n        }\r\n\r\n        tick();\r\n        cooldownInterval = setInterval(tick, 1000);\r\n    }\r\n\r\n    function isValidEmail(value){\r\n        return \/^[^\\s@]+@[^\\s@]+\\.[^\\s@]+$\/.test(value);\r\n    }\r\n\r\n    btn.addEventListener(\"click\", function(e){\r\n        e.preventDefault();\r\n\r\n        const email = emailInput.value.trim();\r\n        if(!isValidEmail(email)){\r\n            showMessage(\"error\", \"Please enter a valid email address.\");\r\n            return;\r\n        }\r\n\r\n        currentEmail = email;\r\n\r\n        \/\/ \u00bfHay cooldown activo para este email?\r\n        try {\r\n            const savedUntil = parseInt(localStorage.getItem(storageKey(email)), 10);\r\n            if(savedUntil && savedUntil > Date.now()){\r\n                startCooldown(savedUntil);\r\n                return;\r\n            }\r\n        } catch(e) {}\r\n\r\n        clearPersistent();\r\n        showMessage(\"info\", \"Sending reset link...\");\r\n        btn.disabled = true;\r\n        emailInput.disabled = true;\r\n\r\n        fetch(\"\/wp-admin\/admin-ajax.php\",{\r\n            method:\"POST\",\r\n            headers:{\"Content-Type\":\"application\/x-www-form-urlencoded\"},\r\n            body:\"action=lcb_request_password_reset&email=\"+encodeURIComponent(email)\r\n        })\r\n        .then(r=>r.json())\r\n        .then(data=>{\r\n            if(data.success){\r\n                const resendCount = (data.data && typeof data.data.resend_count !== \"undefined\")\r\n                    ? data.data.resend_count : 0;\r\n                updateHelpUI(resendCount);\r\n\r\n                if(resendCount < MAX_RESENDS){\r\n                    clearMessage();\r\n                    startCooldown(Date.now() + COOLDOWN_SECONDS * 1000);\r\n                }\r\n            }else{\r\n                if(data.data && typeof data.data === \"object\" && data.data.max_reached){\r\n                    updateHelpUI(MAX_RESENDS);\r\n                    return;\r\n                }\r\n                if(data.data && typeof data.data === \"object\" && data.data.rate_limited){\r\n                    if(typeof data.data.resend_count !== \"undefined\"){\r\n                        updateHelpUI(data.data.resend_count);\r\n                    }\r\n                    const retryAfter = parseInt(data.data.retry_after, 10);\r\n                    if(retryAfter > 0){\r\n                        startCooldown(Date.now() + retryAfter * 1000);\r\n                        return;\r\n                    }\r\n                }\r\n                const errorText = (data.data && data.data.message) ? data.data.message : data.data;\r\n                showMessage(\"error\", errorText);\r\n                btn.disabled = false;\r\n                emailInput.disabled = false;\r\n            }\r\n        })\r\n        .catch(()=>{\r\n            showMessage(\"error\", \"Something went wrong. Please try again.\");\r\n            btn.disabled = false;\r\n            emailInput.disabled = false;\r\n        });\r\n    });\r\n\r\n    let statusFetchTimeout = null;\r\n    emailInput.addEventListener(\"input\", function(){\r\n        clearMessage();\r\n        clearPersistent();\r\n        clearTimeout(statusFetchTimeout);\r\n\r\n        const email = emailInput.value.trim();\r\n        if(!isValidEmail(email)) return;\r\n\r\n        statusFetchTimeout = setTimeout(function(){\r\n            currentEmail = email;\r\n\r\n            try {\r\n                const savedUntil = parseInt(localStorage.getItem(storageKey(email)), 10);\r\n                if(savedUntil && savedUntil > Date.now()){\r\n                    startCooldown(savedUntil);\r\n                    return;\r\n                }\r\n            } catch(e) {}\r\n\r\n            fetch(\"\/wp-admin\/admin-ajax.php\",{\r\n                method:\"POST\",\r\n                headers:{\"Content-Type\":\"application\/x-www-form-urlencoded\"},\r\n                body:\"action=lcb_get_password_reset_status&email=\"+encodeURIComponent(email)\r\n            })\r\n            .then(r=>r.json())\r\n            .then(data=>{\r\n                if(data.success && data.data){\r\n                    updateHelpUI(data.data.resend_count);\r\n                }\r\n            })\r\n            .catch(()=>{});\r\n        }, 500);\r\n    });\r\n});\r\n<\/script>\t\t\t\t<\/div>\n\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":"<p>Forgot your password? Enter your email and we\u2019ll send you a reset link. Still no luck? Contact us for help You&#8217;ve already requested the verification email several times. If you still haven&#8217;t received it, please contact us so we can help. Contact us Send reset link Back to Home<\/p>","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"elementor_header_footer","meta":{"pmpro_default_level":"","footnotes":""},"class_list":["post-56118","page","type-page","status-publish","hentry","pmpro-has-access"],"_links":{"self":[{"href":"https:\/\/laclavedebarrio.com\/es\/wp-json\/wp\/v2\/pages\/56118","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/laclavedebarrio.com\/es\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/laclavedebarrio.com\/es\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/laclavedebarrio.com\/es\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/laclavedebarrio.com\/es\/wp-json\/wp\/v2\/comments?post=56118"}],"version-history":[{"count":0,"href":"https:\/\/laclavedebarrio.com\/es\/wp-json\/wp\/v2\/pages\/56118\/revisions"}],"wp:attachment":[{"href":"https:\/\/laclavedebarrio.com\/es\/wp-json\/wp\/v2\/media?parent=56118"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}