{"id":52131,"date":"2026-08-11T14:57:57","date_gmt":"2026-08-11T06:57:57","guid":{"rendered":"https:\/\/eshop.lungfung.hk\/member-forgot-password\/"},"modified":"2026-08-11T17:37:18","modified_gmt":"2026-08-11T09:37:18","slug":"member-forgot-password","status":"publish","type":"page","link":"https:\/\/eshop.lungfung.hk\/en\/member-forgot-password\/","title":{"rendered":"\u5fd8\u8a18\u5bc6\u78bc"},"content":{"rendered":"\t<div class=\"lf-member-wrap\">\n\t\t<div class=\"lf-member-card\">\n\t\t\t<h2>Forgot password<\/h2>\n\t\t\t\t\t\t<p>Enter your member ID or email and we will send a password reset link to your email address.<\/p>\n\t\t\t<form class=\"lf-member-form\" method=\"post\" action=\"https:\/\/eshop.lungfung.hk\/en\/member-forgot-password\/\">\n\t\t\t\t<input type=\"hidden\" id=\"lf_member_nonce\" name=\"lf_member_nonce\" value=\"7e7ca99aa1\" \/><input type=\"hidden\" name=\"_wp_http_referer\" value=\"\/en\/wp-json\/wp\/v2\/pages\/52131\" \/>\t\t\t\t<input type=\"hidden\" name=\"lf_member_action\" value=\"forgot_password\" \/>\n\t\t\t\t<label>\n\t\t\t\t\t<span>Member ID or email<\/span>\n\t\t\t\t\t<input type=\"text\" name=\"identifier\" autocomplete=\"username\" required \/>\n\t\t\t\t<\/label>\n\t\t\t\t\t\t<script>\n\t\t(function(){\n\t\t\tif (window.lfMembershipTurnstileSetup) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\twindow.lfMembershipTurnstileSetup = true;\n\t\t\tvar cooldownKey = 'lf_member_register_submit_cooldown_until';\n\n\t\t\tfunction submitButton(form) {\n\t\t\t\treturn form ? form.querySelector('button[type=\"submit\"][data-lf-turnstile-submit], input[type=\"submit\"][data-lf-turnstile-submit]') : null;\n\t\t\t}\n\n\t\t\tfunction hasTurnstile(form) {\n\t\t\t\treturn !!(form && form.querySelector('.cf-turnstile'));\n\t\t\t}\n\n\t\t\tfunction turnstileReady(form) {\n\t\t\t\tvar response = form ? form.querySelector('[name=\"cf-turnstile-response\"]') : null;\n\t\t\t\treturn !!(response && response.value);\n\t\t\t}\n\n\t\t\tfunction cooldownRemaining(button) {\n\t\t\t\tif (!button || !button.hasAttribute('data-lf-register-submit')) {\n\t\t\t\t\treturn 0;\n\t\t\t\t}\n\t\t\t\tvar until = parseInt(window.localStorage.getItem(cooldownKey) || '0', 10);\n\t\t\t\treturn Math.max(0, Math.ceil((until - Date.now()) \/ 1000));\n\t\t\t}\n\n\t\t\tfunction updateButton(form) {\n\t\t\t\tvar button = submitButton(form);\n\t\t\t\tif (!button) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tvar defaultLabel = button.getAttribute('data-lf-default-label') || button.textContent;\n\t\t\t\tvar remaining = cooldownRemaining(button);\n\t\t\t\tif (remaining > 0) {\n\t\t\t\t\tbutton.disabled = true;\n\t\t\t\t\tbutton.textContent = \"Please wait \" + remaining + \" seconds\";\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tbutton.textContent = defaultLabel;\n\t\t\t\tbutton.disabled = hasTurnstile(form) && !turnstileReady(form);\n\t\t\t}\n\n\t\t\tfunction refreshForms() {\n\t\t\t\tdocument.querySelectorAll('form.lf-member-form').forEach(updateButton);\n\t\t\t}\n\n\t\t\tfunction requiredLabel(field) {\n\t\t\t\tvar label = field.closest('label');\n\t\t\t\tif (!label) {\n\t\t\t\t\treturn \"Required field\";\n\t\t\t\t}\n\t\t\t\tvar text = (label.querySelector('span') || label).textContent || \"Required field\";\n\t\t\t\treturn text.replace('*', '').trim();\n\t\t\t}\n\n\t\t\tfunction showFieldError(form, field, message) {\n\t\t\t\tvar box = form.querySelector('[data-lf-form-error]');\n\t\t\t\tif (box) {\n\t\t\t\t\tbox.textContent = message;\n\t\t\t\t\tbox.classList.add('is-visible');\n\t\t\t\t}\n\t\t\t\tform.querySelectorAll('.lf-member-invalid').forEach(function(label){\n\t\t\t\t\tlabel.classList.remove('lf-member-invalid');\n\t\t\t\t});\n\t\t\t\tvar label = field.closest('label');\n\t\t\t\tif (label) {\n\t\t\t\t\tlabel.classList.add('lf-member-invalid');\n\t\t\t\t}\n\t\t\t\tfield.scrollIntoView({ behavior: 'smooth', block: 'center' });\n\t\t\t\twindow.setTimeout(function(){ field.focus({ preventScroll: true }); }, 250);\n\t\t\t}\n\n\t\t\tfunction showRequiredError(form, field) {\n\t\t\t\tshowFieldError(form, field, \"Please complete required field: \" + requiredLabel(field));\n\t\t\t}\n\n\t\t\tfunction showPhoneError(form, field) {\n\t\t\t\tshowFieldError(form, field, field.getAttribute('data-lf-phone-error') || \"Enter an 8-digit Hong Kong phone number. Do not include +852.\");\n\t\t\t}\n\n\t\t\tfunction validateRequired(form) {\n\t\t\t\tvar required = Array.prototype.slice.call(form.querySelectorAll('[required]'));\n\t\t\t\tfor (var i = 0; i < required.length; i++) {\n\t\t\t\t\tvar field = required[i];\n\t\t\t\t\tif (field.disabled) {\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t}\n\t\t\t\t\tif ((field.type === 'checkbox' || field.type === 'radio') ? !field.checked : !String(field.value || '').trim()) {\n\t\t\t\t\t\tshowRequiredError(form, field);\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tvar phoneFields = Array.prototype.slice.call(form.querySelectorAll('[data-lf-hk-phone]'));\n\t\t\t\tfor (var p = 0; p < phoneFields.length; p++) {\n\t\t\t\t\tvar phone = phoneFields[p];\n\t\t\t\t\tif (phone.disabled) {\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t}\n\t\t\t\t\tphone.value = String(phone.value || '').trim();\n\t\t\t\t\tif (phone.value && !\/^[0-9]{8}$\/.test(phone.value)) {\n\t\t\t\t\t\tshowPhoneError(form, phone);\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tvar box = form.querySelector('[data-lf-form-error]');\n\t\t\t\tif (box) {\n\t\t\t\t\tbox.classList.remove('is-visible');\n\t\t\t\t\tbox.textContent = '';\n\t\t\t\t}\n\t\t\t\tform.querySelectorAll('.lf-member-invalid').forEach(function(label){\n\t\t\t\t\tlabel.classList.remove('lf-member-invalid');\n\t\t\t\t});\n\t\t\t\treturn true;\n\t\t\t}\n\n\t\t\twindow.lfMembershipTurnstileSuccess = function() {\n\t\t\t\twindow.setTimeout(refreshForms, 50);\n\t\t\t};\n\t\t\twindow.lfMembershipTurnstileReset = function() {\n\t\t\t\twindow.setTimeout(refreshForms, 50);\n\t\t\t};\n\n\t\t\tdocument.addEventListener('submit', function(event) {\n\t\t\t\tvar form = event.target;\n\t\t\t\tif (!form || !form.classList || !form.classList.contains('lf-member-form')) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (!validateRequired(form)) {\n\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (hasTurnstile(form) && !turnstileReady(form)) {\n\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\tupdateButton(form);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tvar button = submitButton(form);\n\t\t\t\tif (button && button.hasAttribute('data-lf-register-submit')) {\n\t\t\t\t\twindow.localStorage.setItem(cooldownKey, String(Date.now() + 60000));\n\t\t\t\t\tupdateButton(form);\n\t\t\t\t}\n\t\t\t});\n\n\t\t\tdocument.addEventListener('invalid', function(event) {\n\t\t\t\tvar field = event.target;\n\t\t\t\tvar form = field && field.form;\n\t\t\t\tif (!form || !form.classList || !form.classList.contains('lf-member-form')) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tevent.preventDefault();\n\t\t\t\tif (field.hasAttribute('data-lf-hk-phone') && String(field.value || '').trim() && !\/^[0-9]{8}$\/.test(String(field.value || '').trim())) {\n\t\t\t\t\tshowPhoneError(form, field);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tshowRequiredError(form, field);\n\t\t\t}, true);\n\n\t\t\tdocument.addEventListener('DOMContentLoaded', refreshForms);\n\t\t\twindow.setInterval(refreshForms, 1000);\n\t\t})();\n\t\t<\/script>\n\t\t<div class=\"cf-turnstile\" data-sitekey=\"0x4AAAAAADqAom9XB5Dm8cjz\" data-callback=\"lfMembershipTurnstileSuccess\" data-expired-callback=\"lfMembershipTurnstileReset\" data-error-callback=\"lfMembershipTurnstileReset\"><\/div>\t\t\t\t<div class=\"lf-member-actions\">\n\t\t\t\t\t<button type=\"submit\" class=\"button\" disabled=\"disabled\" data-lf-turnstile-submit=\"1\">Send reset link<\/button>\n\t\t\t\t\t<a href=\"https:\/\/eshop.lungfung.hk\/en\/member-login\/\" data-lf-member-href-token=\"aHR0cHM6Ly9lc2hvcC5sdW5nZnVuZy5oay9lbi9tZW1iZXItbG9naW4v\">Back to login<\/a>\n\t\t\t\t<\/div>\n\t\t\t<\/form>\n\t\t<\/div>\n\t<\/div>\n\t\n","protected":false},"excerpt":{"rendered":"","protected":false},"author":26,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-52131","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/eshop.lungfung.hk\/en\/wp-json\/wp\/v2\/pages\/52131","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/eshop.lungfung.hk\/en\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/eshop.lungfung.hk\/en\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/eshop.lungfung.hk\/en\/wp-json\/wp\/v2\/users\/26"}],"replies":[{"embeddable":true,"href":"https:\/\/eshop.lungfung.hk\/en\/wp-json\/wp\/v2\/comments?post=52131"}],"version-history":[{"count":1,"href":"https:\/\/eshop.lungfung.hk\/en\/wp-json\/wp\/v2\/pages\/52131\/revisions"}],"predecessor-version":[{"id":52137,"href":"https:\/\/eshop.lungfung.hk\/en\/wp-json\/wp\/v2\/pages\/52131\/revisions\/52137"}],"wp:attachment":[{"href":"https:\/\/eshop.lungfung.hk\/en\/wp-json\/wp\/v2\/media?parent=52131"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}