{"id":1159,"date":"2026-01-31T16:05:19","date_gmt":"2026-01-31T16:05:19","guid":{"rendered":"https:\/\/kwata.app\/errands\/shopper-password-reset\/"},"modified":"2026-01-31T16:05:19","modified_gmt":"2026-01-31T16:05:19","slug":"shopper-password-reset","status":"publish","type":"page","link":"https:\/\/kwata.app\/errands\/shopper-password-reset\/","title":{"rendered":"Reset Password"},"content":{"rendered":"\n<div class=\"wma-content-container\">\n    <div class=\"wma-shopper-login-container\">\n    <div class=\"wma-login-card\">\n        <div class=\"wma-login-header\">\n            <div class=\"wma-site-branding\">\n                <a href=\"https:\/\/kwata.app\/errands\/\" class=\"custom-logo-link\" rel=\"home\"><img fetchpriority=\"high\" decoding=\"async\" width=\"2560\" height=\"732\" src=\"https:\/\/kwata.app\/errands\/wp-content\/uploads\/2026\/01\/K-Errands-web-G.png\" class=\"custom-logo\" alt=\"Kwata Errands\" srcset=\"https:\/\/kwata.app\/errands\/wp-content\/uploads\/2026\/01\/K-Errands-web-G.png 2560w, https:\/\/kwata.app\/errands\/wp-content\/uploads\/2026\/01\/K-Errands-web-G-300x86.png 300w, https:\/\/kwata.app\/errands\/wp-content\/uploads\/2026\/01\/K-Errands-web-G-1024x293.png 1024w, https:\/\/kwata.app\/errands\/wp-content\/uploads\/2026\/01\/K-Errands-web-G-768x220.png 768w, https:\/\/kwata.app\/errands\/wp-content\/uploads\/2026\/01\/K-Errands-web-G-1536x439.png 1536w, https:\/\/kwata.app\/errands\/wp-content\/uploads\/2026\/01\/K-Errands-web-G-2048x586.png 2048w\" sizes=\"(max-width: 2560px) 100vw, 2560px\" \/><\/a>            <\/div>\n            <h2 class=\"wma-site-title\">Kwata Errands<\/h2>\n            <p class=\"wma-site-subtitle\">\n                Reset Your Password            <\/p>\n        <\/div>\n\n                    <!-- Request Reset Link Form -->\n            <form class=\"wma-form\" id=\"wma-request-reset-form\">\n                <input type=\"hidden\" id=\"wma_request_nonce\" name=\"wma_request_nonce\" value=\"eab0be5c4c\" \/><input type=\"hidden\" name=\"_wp_http_referer\" value=\"\/errands\/wp-json\/wp\/v2\/pages\/1159\" \/>                \n                <div class=\"wma-form-group\">\n                    <label for=\"user_email\">Email Address<\/label>\n                    <input type=\"email\" id=\"user_email\" name=\"user_email\" required placeholder=\"Enter your email address\">\n                    <small>Enter the email address associated with your account<\/small>\n                <\/div>\n\n                <div class=\"wma-form-error\" id=\"wma-request-error\" style=\"display: none;\"><\/div>\n                <div class=\"wma-form-success\" id=\"wma-request-success\" style=\"display: none;\"><\/div>\n\n                <button type=\"submit\" class=\"wma-btn wma-btn-primary wma-btn-block\" id=\"wma-request-btn\">\n                    <span class=\"wma-btn-text\">Send Reset Link<\/span>\n                    <span class=\"wma-btn-loading\" style=\"display: none;\">\n                        <span class=\"wma-spinner\"><\/span>\n                        Sending...                    <\/span>\n                <\/button>\n            <\/form>\n        \n        <div class=\"wma-login-links\">\n            <a href=\"https:\/\/kwata.app\/errands\/market-shopper-login\/\">\n                \u2190 Back to Login            <\/a>\n        <\/div>\n\n        <div class=\"wma-login-footer\">\n            <p>\n                Need help?                <a href=\"mailto:customerpulldesk@gmail.com\">\n                    Contact Support                <\/a>\n            <\/p>\n        <\/div>\n    <\/div>\n<\/div>\n<\/div>\n\n<style>\n\/* Reuse styles from shopper-login.php *\/\n.wma-shopper-login-container {\n    max-width: 480px;\n    margin: 0 auto;\n    padding: 20px;\n    width: 100%;\n    box-sizing: border-box;\n    min-height: 100vh;\n    display: flex;\n    align-items: center;\n    justify-content: center;\n}\n\n.wma-login-card {\n    background: #fff;\n    border-radius: 16px;\n    box-shadow: 0 4px 24px rgba(0,0,0,0.12);\n    padding: 32px;\n    width: 100%;\n}\n\n.wma-login-header {\n    text-align: center;\n    margin-bottom: 24px;\n}\n\n.wma-site-branding {\n    margin-bottom: 8px;\n}\n\n.wma-site-branding img,\n.wma-site-branding .custom-logo,\n.wma-site-branding .custom-logo-link img,\n.wma-site-logo {\n    max-width: 48px !important;\n    max-height: 48px !important;\n    width: auto !important;\n    height: auto !important;\n    display: block;\n    margin: 0 auto 8px;\n}\n\n.wma-site-text {\n    font-size: 18px;\n    font-weight: 700;\n    color: #1a1a1a;\n}\n\n.wma-site-title {\n    margin: 0 0 8px;\n    font-size: 20px;\n    color: #1a1a1a;\n}\n\n.wma-site-subtitle {\n    margin: 0;\n    color: #666;\n    font-size: 14px;\n}\n\n.wma-form-group {\n    margin-bottom: 16px;\n}\n\n.wma-form-group label {\n    display: block;\n    margin-bottom: 6px;\n    font-size: 14px;\n    font-weight: 500;\n    color: #374151;\n}\n\n.wma-form-group input[type=\"email\"],\n.wma-form-group input[type=\"password\"] {\n    width: 100%;\n    padding: 12px 14px;\n    border: 1px solid #d1d5db;\n    border-radius: 8px;\n    font-size: 15px;\n    transition: border-color 0.2s, box-shadow 0.2s;\n    box-sizing: border-box;\n    font-family: inherit;\n}\n\n.wma-form-group input:focus {\n    outline: none;\n    border-color: #10b981;\n    box-shadow: 0 0 0 3px rgba(16, 185, 129, 0.1);\n}\n\n.wma-form-group small {\n    display: block;\n    margin-top: 4px;\n    font-size: 12px;\n    color: #6b7280;\n}\n\n.wma-btn {\n    display: inline-flex;\n    align-items: center;\n    justify-content: center;\n    padding: 12px 24px;\n    border: none;\n    border-radius: 8px;\n    font-size: 15px;\n    font-weight: 600;\n    cursor: pointer;\n    transition: all 0.2s;\n}\n\n.wma-btn-block {\n    width: 100%;\n}\n\n.wma-btn-primary {\n    background: #10b981;\n    color: #fff;\n}\n\n.wma-btn-primary:hover {\n    background: #059669;\n}\n\n.wma-btn-primary:disabled {\n    background: #9ca3af;\n    cursor: not-allowed;\n}\n\n.wma-form-error {\n    background: #fee2e2;\n    color: #dc2626;\n    padding: 12px 16px;\n    border-radius: 8px;\n    font-size: 14px;\n    margin-bottom: 16px;\n    border: 1px solid #fecaca;\n}\n\n.wma-form-success {\n    background: #dcfce7;\n    color: #16a34a;\n    padding: 12px 16px;\n    border-radius: 8px;\n    font-size: 14px;\n    margin-bottom: 16px;\n    border: 1px solid #bbf7d0;\n}\n\n.wma-login-links {\n    text-align: center;\n    margin-top: 16px;\n}\n\n.wma-login-links a {\n    color: #6b7280;\n    font-size: 14px;\n    text-decoration: none;\n}\n\n.wma-login-links a:hover {\n    color: #10b981;\n}\n\n.wma-login-footer {\n    text-align: center;\n    margin-top: 24px;\n    padding-top: 24px;\n    border-top: 1px solid #e5e7eb;\n}\n\n.wma-login-footer p {\n    margin: 0;\n    font-size: 14px;\n    color: #6b7280;\n}\n\n.wma-login-footer a {\n    color: #10b981;\n    font-weight: 500;\n    text-decoration: none;\n}\n\n.wma-login-footer a:hover {\n    text-decoration: underline;\n}\n\n.wma-spinner {\n    display: inline-block;\n    width: 16px;\n    height: 16px;\n    border: 2px solid rgba(255,255,255,0.3);\n    border-radius: 50%;\n    border-top-color: #fff;\n    animation: wma-spin 0.8s linear infinite;\n    margin-right: 8px;\n}\n\n@keyframes wma-spin {\n    to { transform: rotate(360deg); }\n}\n\n.wma-btn-loading {\n    display: none;\n    align-items: center;\n}\n\n.wma-btn:disabled {\n    opacity: 0.6;\n    cursor: not-allowed;\n}\n\n@media (max-width: 480px) {\n    .wma-shopper-login-container {\n        padding: 12px;\n        align-items: flex-start;\n        padding-top: 20px;\n    }\n    \n    .wma-login-card {\n        padding: 24px 20px;\n    }\n    \n    .wma-site-branding img,\n    .wma-site-branding .custom-logo,\n    .wma-site-branding .custom-logo-link img,\n    .wma-site-logo {\n        max-width: 36px !important;\n        max-height: 36px !important;\n    }\n}\n<\/style>\n\n<script>\n(function() {\n    'use strict';\n    \n    document.addEventListener('DOMContentLoaded', function() {\n        \/\/ Request Reset Form\n        var requestForm = document.getElementById('wma-request-reset-form');\n        if (requestForm) {\n            requestForm.addEventListener('submit', function(e) {\n                e.preventDefault();\n                submitRequestReset();\n            });\n        }\n\n        \/\/ Reset Password Form\n        var resetForm = document.getElementById('wma-reset-password-form');\n        if (resetForm) {\n            resetForm.addEventListener('submit', function(e) {\n                e.preventDefault();\n                submitResetPassword();\n            });\n        }\n    });\n\n    function submitRequestReset() {\n        var form = document.getElementById('wma-request-reset-form');\n        var btn = document.getElementById('wma-request-btn');\n        var btnText = btn.querySelector('.wma-btn-text');\n        var btnLoading = btn.querySelector('.wma-btn-loading');\n        var errorDiv = document.getElementById('wma-request-error');\n        var successDiv = document.getElementById('wma-request-success');\n        \n        var email = form.querySelector('[name=\"user_email\"]').value.trim();\n        \n        if (!email) {\n            showError(errorDiv, 'Please enter your email address');\n            return;\n        }\n        \n        btnText.style.display = 'none';\n        btnLoading.style.display = 'inline-flex';\n        btn.disabled = true;\n        errorDiv.style.display = 'none';\n        successDiv.style.display = 'none';\n        \n        var formData = new FormData(form);\n        formData.append('action', 'wma_request_password_reset');\n        \n        fetch('https:\/\/kwata.app\/errands\/wp-admin\/admin-ajax.php', {\n            method: 'POST',\n            body: formData\n        })\n        .then(function(response) { return response.json(); })\n        .then(function(data) {\n            if (data.success) {\n                successDiv.textContent = data.data.message;\n                successDiv.style.display = 'block';\n                form.reset();\n            } else {\n                showError(errorDiv, data.data.message || 'Failed to send reset link');\n            }\n        })\n        .catch(function(error) {\n            console.error('Request error:', error);\n            showError(errorDiv, 'An error occurred. Please try again.');\n        })\n        .finally(function() {\n            btnText.style.display = 'inline';\n            btnLoading.style.display = 'none';\n            btn.disabled = false;\n        });\n    }\n\n    function submitResetPassword() {\n        var form = document.getElementById('wma-reset-password-form');\n        var btn = document.getElementById('wma-reset-btn');\n        var btnText = btn.querySelector('.wma-btn-text');\n        var btnLoading = btn.querySelector('.wma-btn-loading');\n        var errorDiv = document.getElementById('wma-reset-error');\n        var successDiv = document.getElementById('wma-reset-success');\n        \n        var newPassword = form.querySelector('[name=\"new_password\"]').value;\n        var confirmPassword = form.querySelector('[name=\"confirm_password\"]').value;\n        \n        if (!newPassword || !confirmPassword) {\n            showError(errorDiv, 'Please fill in all fields');\n            return;\n        }\n        \n        if (newPassword.length < 8) {\n            showError(errorDiv, 'Password must be at least 8 characters long');\n            return;\n        }\n        \n        if (newPassword !== confirmPassword) {\n            showError(errorDiv, 'Passwords do not match');\n            return;\n        }\n        \n        btnText.style.display = 'none';\n        btnLoading.style.display = 'inline-flex';\n        btn.disabled = true;\n        errorDiv.style.display = 'none';\n        successDiv.style.display = 'none';\n        \n        var formData = new FormData(form);\n        formData.append('action', 'wma_reset_password');\n        \n        fetch('https:\/\/kwata.app\/errands\/wp-admin\/admin-ajax.php', {\n            method: 'POST',\n            body: formData\n        })\n        .then(function(response) { return response.json(); })\n        .then(function(data) {\n            if (data.success) {\n                successDiv.textContent = data.data.message;\n                successDiv.style.display = 'block';\n                form.reset();\n                \n                \/\/ Redirect to login after 2 seconds\n                setTimeout(function() {\n                    window.location.href = data.data.redirect_url;\n                }, 2000);\n            } else {\n                showError(errorDiv, data.data.message || 'Failed to reset password');\n            }\n        })\n        .catch(function(error) {\n            console.error('Reset error:', error);\n            showError(errorDiv, 'An error occurred. Please try again.');\n        })\n        .finally(function() {\n            btnText.style.display = 'inline';\n            btnLoading.style.display = 'none';\n            btn.disabled = false;\n        });\n    }\n\n    function showError(errorDiv, message) {\n        errorDiv.textContent = message;\n        errorDiv.style.display = 'block';\n        errorDiv.scrollIntoView({ behavior: 'smooth', block: 'center' });\n    }\n})();\n<\/script>\n\n","protected":false},"excerpt":{"rendered":"","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"elementor_canvas","meta":{"footnotes":""},"class_list":["post-1159","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/kwata.app\/errands\/wp-json\/wp\/v2\/pages\/1159","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/kwata.app\/errands\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/kwata.app\/errands\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/kwata.app\/errands\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/kwata.app\/errands\/wp-json\/wp\/v2\/comments?post=1159"}],"version-history":[{"count":0,"href":"https:\/\/kwata.app\/errands\/wp-json\/wp\/v2\/pages\/1159\/revisions"}],"wp:attachment":[{"href":"https:\/\/kwata.app\/errands\/wp-json\/wp\/v2\/media?parent=1159"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}