{"id":16,"date":"2026-05-17T18:41:10","date_gmt":"2026-05-17T18:41:10","guid":{"rendered":"https:\/\/puzzling24.com\/?st-import=09365df8ade7d37359edc5f2970c9438"},"modified":"2026-05-20T08:22:45","modified_gmt":"2026-05-20T08:22:45","slug":"account","status":"publish","type":"page","link":"https:\/\/puzzling24.com\/fa\/account\/","title":{"rendered":"\u062d\u0633\u0627\u0628 \u06a9\u0627\u0631\u0628\u0631\u06cc"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"16\" class=\"elementor elementor-16\">\n\t\t\t\t<div class=\"elementor-element elementor-element-f3d06b3 e-flex e-con-boxed e-con e-parent\" data-id=\"f3d06b3\" 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-c248003 e-flex e-con-boxed e-con e-child\" data-id=\"c248003\" 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-0cd6647 elementor-widget elementor-widget-heading\" data-id=\"0cd6647\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h1 class=\"elementor-heading-title elementor-size-default\">Account<\/h1>\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\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-fcc2af5 e-flex e-con-boxed e-con e-parent\" data-id=\"fcc2af5\" 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-b9287d9 elementor-widget elementor-widget-shortcode\" data-id=\"b9287d9\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"shortcode.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-shortcode\">\n    <div id=\"puzzling-delete-box\">\n        <div class=\"puzzling-header\">\n\n            <h2>\n                \u062d\u0630\u0641 \u062d\u0633\u0627\u0628            <\/h2>\n\n            <p class=\"puzzling-description\">\n                \u0627\u06cc\u0645\u06cc\u0644 \u062e\u0648\u062f \u0631\u0627 \u0648\u0627\u0631\u062f \u06a9\u0646\u06cc\u062f \u062a\u0627 \u06a9\u062f \u062a\u0627\u06cc\u06cc\u062f \u0628\u0631\u0627\u06cc \u0634\u0645\u0627 \u0627\u0631\u0633\u0627\u0644 \u0634\u0648\u062f. \u0633\u067e\u0633 \u06a9\u062f \u06f4 \u0631\u0642\u0645\u06cc \u0627\u0631\u0633\u0627\u0644 \u0634\u062f\u0647 \u0631\u0627 \u0648\u0627\u0631\u062f \u06a9\u0646\u06cc\u062f \u062a\u0627 \u062d\u0630\u0641 \u062d\u0633\u0627\u0628 \u062a\u0627\u06cc\u06cc\u062f \u0634\u0648\u062f.            <\/p>\n        <\/div>\n\n        <div class=\"puzzling-form-group\">\n\n            <label>\n                \u0627\u06cc\u0645\u06cc\u0644            <\/label>\n\n            <input\n                type=\"email\"\n                id=\"puzzling-email\"\n                placeholder=\"\u0627\u06cc\u0645\u06cc\u0644 \u062e\u0648\u062f \u0631\u0627 \u0648\u0627\u0631\u062f \u06a9\u0646\u06cc\u062f\"\n            \/>\n        <\/div>\n\n        <button\n            id=\"puzzling-send-btn\"\n            class=\"puzzling-btn puzzling-btn-send\"\n            type=\"button\"\n            onclick=\"sendDeleteCode()\"\n        >\n            \u0627\u0631\u0633\u0627\u0644 \u06a9\u062f \u062a\u0627\u06cc\u06cc\u062f        <\/button>\n\n        <div id=\"puzzling-code-section\" style=\"display:none;\">\n\n            <div class=\"puzzling-form-group\">\n\n                <label>\n                    \u06a9\u062f \u062a\u0627\u06cc\u06cc\u062f                <\/label>\n\n                <input\n                    type=\"text\"\n                    id=\"puzzling-code\"\n                    placeholder=\"\u06a9\u062f \u06f4 \u0631\u0642\u0645\u06cc \u0631\u0627 \u0648\u0627\u0631\u062f \u06a9\u0646\u06cc\u062f\"\n                    maxlength=\"4\"\n                    inputmode=\"numeric\"\n                    pattern=\"[0-9]*\"\n                \/>\n            <\/div>\n\n            <button\n                id=\"puzzling-delete-btn\"\n                class=\"puzzling-btn puzzling-btn-delete\"\n                type=\"button\"\n                onclick=\"confirmDeleteAccount()\"\n            >\n                \u062d\u0630\u0641 \u062d\u0633\u0627\u0628 \u0645\u0646            <\/button>\n        <\/div>\n    <\/div>\n\n    <script>\n\n        const API_BASE = \"https:\/\/puzzling24.com\/fa\/wp-json\/puzzling\/v1\";\n\n        const TEXTS = {\n            sending: \"\u062f\u0631 \u062d\u0627\u0644 \u0627\u0631\u0633\u0627\u0644...\",\n            deleting: \"\u062f\u0631 \u062d\u0627\u0644 \u062d\u0630\u0641...\",\n            sendButton: \"\u0627\u0631\u0633\u0627\u0644 \u06a9\u062f \u062a\u0627\u06cc\u06cc\u062f\",\n            deleteButton: \"\u062d\u0630\u0641 \u062d\u0633\u0627\u0628 \u0645\u0646\",\n            enterEmail: \"\u0627\u06cc\u0645\u06cc\u0644 \u062e\u0648\u062f \u0631\u0627 \u0648\u0627\u0631\u062f \u06a9\u0646\u06cc\u062f.\",\n            enterCode: \"\u0627\u06cc\u0645\u06cc\u0644 \u0648 \u06a9\u062f \u062a\u0627\u06cc\u06cc\u062f \u0631\u0627 \u0648\u0627\u0631\u062f \u06a9\u0646\u06cc\u062f.\",\n            invalidCode: \"\u06a9\u062f \u062a\u0627\u06cc\u06cc\u062f \u0628\u0627\u06cc\u062f \u06f4 \u0631\u0642\u0645\u06cc \u0628\u0627\u0634\u062f.\",\n            connectionError: \"\u062e\u0637\u0627 \u062f\u0631 \u0627\u062a\u0635\u0627\u0644. \u062f\u0648\u0628\u0627\u0631\u0647 \u062a\u0644\u0627\u0634 \u06a9\u0646\u06cc\u062f.\"\n        };\n\n        function setMessage(message, isError = false) {\n\n            if (!message) return;\n\n            let toast = document.getElementById(\"puzzling-toast\");\n\n            if (!toast) {\n                toast = document.createElement(\"div\");\n                toast.id = \"puzzling-toast\";\n                document.body.appendChild(toast);\n            }\n\n            toast.innerText = message;\n\n            toast.className = isError\n                ? \"puzzling-toast puzzling-toast-error\"\n                : \"puzzling-toast puzzling-toast-success\";\n\n            setTimeout(() => {\n                toast.classList.add(\"show\");\n            }, 10);\n\n            clearTimeout(window.puzzlingToastTimeout);\n\n            window.puzzlingToastTimeout = setTimeout(() => {\n                toast.classList.remove(\"show\");\n            }, 3500);\n        }\n\n        function setButtonLoading(buttonId, isLoading, loadingText, defaultText) {\n\n            const btn = document.getElementById(buttonId);\n\n            if (!btn) return;\n\n            btn.disabled = isLoading;\n\n            btn.innerHTML = isLoading\n                ? `<span class=\"puzzling-spinner\"><\/span>${loadingText}`\n                : defaultText;\n        }\n\n        async function sendDeleteCode() {\n\n            const email = document.getElementById(\"puzzling-email\").value.trim();\n\n            if (!email) {\n                setMessage(TEXTS.enterEmail, true);\n                return;\n            }\n\n            setButtonLoading(\n                \"puzzling-send-btn\",\n                true,\n                TEXTS.sending,\n                TEXTS.sendButton\n            );\n\n            try {\n\n                const response = await fetch(`${API_BASE}\/send-code`, {\n                    method: \"POST\",\n                    headers: {\n                        \"Content-Type\": \"application\/json\"\n                    },\n                    body: JSON.stringify({\n                        email: email\n                    })\n                });\n\n                const data = await response.json();\n\n                if (data.success) {\n\n                    document.getElementById(\"puzzling-code-section\").style.display = \"block\";\n\n                    setMessage(\n                        data.message ||\n                        \"\u06a9\u062f \u062a\u0627\u06cc\u06cc\u062f \u0627\u0631\u0633\u0627\u0644 \u0634\u062f.\"\n                    );\n\n                } else {\n\n                    setMessage(\n                        data.message ||\n                        \"\u0627\u0631\u0633\u0627\u0644 \u06a9\u062f \u062a\u0627\u06cc\u06cc\u062f \u0646\u0627\u0645\u0648\u0641\u0642 \u0628\u0648\u062f.\",\n                        true\n                    );\n                }\n\n            } catch (e) {\n\n                setMessage(TEXTS.connectionError, true);\n\n            } finally {\n\n                setButtonLoading(\n                    \"puzzling-send-btn\",\n                    false,\n                    TEXTS.sending,\n                    TEXTS.sendButton\n                );\n            }\n        }\n\n        async function confirmDeleteAccount() {\n\n            const email = document.getElementById(\"puzzling-email\").value.trim();\n            const code = document.getElementById(\"puzzling-code\").value.trim();\n\n            if (!email || !code) {\n                setMessage(TEXTS.enterCode, true);\n                return;\n            }\n\n            if (!\/^[0-9]{4}$\/.test(code)) {\n                setMessage(TEXTS.invalidCode, true);\n                return;\n            }\n\n            setButtonLoading(\n                \"puzzling-delete-btn\",\n                true,\n                TEXTS.deleting,\n                TEXTS.deleteButton\n            );\n\n            try {\n\n                const response = await fetch(`${API_BASE}\/confirm-delete`, {\n                    method: \"POST\",\n                    headers: {\n                        \"Content-Type\": \"application\/json\"\n                    },\n                    body: JSON.stringify({\n                        email: email,\n                        code: code\n                    })\n                });\n\n                const data = await response.json();\n\n                if (data.success) {\n\n                    setMessage(\n                        data.message ||\n                        \"\u062d\u0633\u0627\u0628 \u0628\u0627 \u0645\u0648\u0641\u0642\u06cc\u062a \u062d\u0630\u0641 \u0634\u062f.\"\n                    );\n\n                } else {\n\n                    setMessage(\n                        data.message ||\n                        \"\u062a\u0627\u06cc\u06cc\u062f \u0646\u0627\u0645\u0648\u0641\u0642 \u0628\u0648\u062f.\",\n                        true\n                    );\n                }\n\n            } catch (e) {\n\n                setMessage(TEXTS.connectionError, true);\n\n            } finally {\n\n                setButtonLoading(\n                    \"puzzling-delete-btn\",\n                    false,\n                    TEXTS.deleting,\n                    TEXTS.deleteButton\n                );\n            }\n        }\n\n        document.addEventListener(\"input\", function (e) {\n\n            if (e.target.id === \"puzzling-code\") {\n                e.target.value = e.target.value.replace(\/\\D\/g, \"\").slice(0, 4);\n            }\n        });\n\n    <\/script>\n\n    <style>\n\n        @import url('https:\/\/fonts.googleapis.com\/css2?family=Inter:wght@400;500;600;700&family=Vazirmatn:wght@400;500;600;700&display=swap');\n\n        #puzzling-delete-box {\n\n            max-width: 460px;\n            margin: 40px auto;\n            padding: 32px;\n            border-radius: 24px;\n            background: #ffffff;\n            box-shadow: 0 10px 30px rgba(0,0,0,0.08);\n            border: 1px solid #ececec;\n        }\n\n        html[lang=\"fa-IR\"] #puzzling-delete-box,\n        html[lang=\"fa-IR\"] .puzzling-toast {\n\n            font-family: 'Vazirmatn', sans-serif;\n            direction: rtl;\n            text-align: right;\n        }\n\n        html[lang=\"en-US\"] #puzzling-delete-box,\n        html[lang=\"en-US\"] .puzzling-toast {\n\n            font-family: 'Inter', sans-serif;\n            direction: ltr;\n        }\n\n        html[lang=\"fa-IR\"] #puzzling-delete-box input {\n            text-align: right;\n        }\n\n        .puzzling-header h2 {\n\n            margin: 0 0 12px;\n            font-size: 30px;\n            font-weight: 700;\n            color: #111827;\n        }\n\n        .puzzling-description {\n\n            margin: 0 0 42px;\n            line-height: 1.9;\n            color: #6b7280;\n            font-size: 15px;\n        }\n\n        .puzzling-form-group {\n            margin-bottom: 18px;\n        }\n\n        .puzzling-form-group label {\n\n            display: block;\n            margin-bottom: 8px;\n            font-size: 14px;\n            font-weight: 600;\n            color: #374151;\n        }\n\n        #puzzling-delete-box input {\n\n            width: 100%;\n            height: 52px;\n            border-radius: 14px;\n            border: 1px solid #d1d5db;\n            padding: 0 16px;\n            font-size: 15px;\n            box-sizing: border-box;\n        }\n\n        #puzzling-delete-box input:focus {\n\n            outline: none;\n            border-color: #ef4444;\n            box-shadow: 0 0 0 4px rgba(239,68,68,0.12);\n        }\n\n        .puzzling-btn {\n\n            width: 100%;\n            height: 52px;\n            border: none;\n            border-radius: 14px;\n            font-size: 15px;\n            font-weight: 600;\n            cursor: pointer;\n            transition: 0.2s ease;\n            display: flex;\n            align-items: center;\n            justify-content: center;\n            gap: 8px;\n        }\n\n        .puzzling-btn:disabled {\n\n            opacity: 0.7;\n            cursor: not-allowed;\n        }\n\n        .puzzling-btn-send {\n\n            background: #111827;\n            color: white;\n            margin-bottom: 20px;\n        }\n\n        .puzzling-btn-delete {\n\n            background: #ef4444;\n            color: white;\n        }\n\n        .puzzling-btn-delete:hover {\n\n            background: #dc2626;\n        }\n\n        .puzzling-spinner {\n\n            width: 16px;\n            height: 16px;\n            border: 2px solid rgba(255,255,255,0.4);\n            border-top-color: #ffffff;\n            border-radius: 50%;\n            animation: puzzling-spin 0.8s linear infinite;\n        }\n\n        @keyframes puzzling-spin {\n\n            to {\n                transform: rotate(360deg);\n            }\n        }\n\n        .puzzling-toast {\n\n            position: fixed;\n            top: 24px;\n            right: 24px;\n            min-width: 280px;\n            max-width: 420px;\n            padding: 16px 18px;\n            border-radius: 16px;\n            color: white;\n            font-size: 14px;\n            font-weight: 600;\n            z-index: 999999;\n            opacity: 0;\n            transform: translateY(-20px);\n            transition: all 0.25s ease;\n            box-shadow: 0 10px 30px rgba(0,0,0,0.15);\n            backdrop-filter: blur(12px);\n        }\n\n        .puzzling-toast.show {\n\n            opacity: 1;\n            transform: translateY(0);\n        }\n\n        .puzzling-toast-success {\n\n            background: linear-gradient(135deg, #16a34a, #15803d);\n        }\n\n        .puzzling-toast-error {\n\n            background: linear-gradient(135deg, #ef4444, #dc2626);\n        }\n\n        @media (max-width: 600px) {\n\n            #puzzling-delete-box {\n\n                padding: 22px;\n                margin: 20px;\n            }\n\n            .puzzling-header h2 {\n\n                font-size: 24px;\n            }\n\n            .puzzling-toast {\n\n                top: 16px;\n                left: 16px;\n                right: 16px;\n                min-width: auto;\n                max-width: none;\n            }\n        }\n\n    <\/style>\n\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":"<p>\u062d\u0633\u0627\u0628 \u06a9\u0627\u0631\u0628\u0631\u06cc<\/p>","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"site-sidebar-layout":"no-sidebar","site-content-layout":"page-builder","ast-site-content-layout":"default","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"disabled","ast-breadcrumbs-content":"","ast-featured-img":"disabled","footer-sml-layout":"","ast-disable-related-posts":"","theme-transparent-header-meta":"enabled","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"default","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"footnotes":""},"class_list":["post-16","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/puzzling24.com\/fa\/wp-json\/wp\/v2\/pages\/16","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/puzzling24.com\/fa\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/puzzling24.com\/fa\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/puzzling24.com\/fa\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/puzzling24.com\/fa\/wp-json\/wp\/v2\/comments?post=16"}],"version-history":[{"count":10,"href":"https:\/\/puzzling24.com\/fa\/wp-json\/wp\/v2\/pages\/16\/revisions"}],"predecessor-version":[{"id":2391,"href":"https:\/\/puzzling24.com\/fa\/wp-json\/wp\/v2\/pages\/16\/revisions\/2391"}],"wp:attachment":[{"href":"https:\/\/puzzling24.com\/fa\/wp-json\/wp\/v2\/media?parent=16"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}