## 1. الفكرة في سطر

منظومة دخول بدون باسورد / متعدّدة العوامل لـ ووردبريس وووكومرس: الدخول عبر واتساب، SMS، الإيميل، أو تطبيق Mersal Authenticator، مع معالجة حقيقية لأرقام الهواتف، وإدارة للأجهزة والجلسات، وطبقة أمان متقدّمة — وكل الإرسال عبر حساب mersal.it المربوط.

## 2. طرق الدخول والمصادقة (الميزات الرئيسية)

الطريقة | كيف تعمل | ملاحظات
--- | --- | ---
الإيميل | كود OTP، أو باسورد، أو رابط سحري — المشرف يختار الأساسي والمتاح | عبر `wp_mail()` (مع SMTP مخصّص اختياري) أو بوابات إيميل مرسال
واتساب | OTP عبر واتساب من بوابة مربوطة. 4 أنماط رسائل (تحت) | يمكن عرض أكثر من نمط وترك المستخدم يختار
SMS | OTP عبر SMS من بوابة مربوطة | يصلح كتحويل تلقائي لواتساب
تطبيق Mersal Authenticator | (أ) كود TOTP 6 أرقام أوفلاين، أو (ب) موافقة Push — طلب تأكيد يظهر في التطبيق بالـ IP/المكان/المتصفح/النظام/الوقت للموافقة أو الرفض | تحقّق عبر حساب مرسال؛ ربط لمرة عبر `/app/pair`
Google | زر «المتابعة بـ Google» (OAuth) بنقرة | اختياري؛ يحتاج Client ID + Secret
رابط تأكيد بنقرة | رابط دخول قصير داخل رسالة واتساب/SMS؛ الضغط عليه يسجّل الدخول دون كتابة الكود | نموذج token+secret، المتصفح يستطلع الموافقة

### أنماط رسالة واتساب

- Standard — رسالة كود OTP نصية.
- Poll (موافقة / رفض) — استطلاع واتساب؛ الضغط على «موافقة» يسجّل الدخول.
- Confirm card (زر) — بطاقة «تأكيد الدخول» بزر قابل للنقر (مثل Wawp).
- رابط تأكيد — رابط موافقة بنقرة داخل الرسالة.

### إعدادات شاشة الدخول

- هاتف أولاً، أو إيميل أولاً، أو «اعرض كل الطرق».
- تذكّر آخر طريقة لكل مستخدم (اختياري)؛ رابط «حساب جديد» (اختياري).

## 3. لوحة التحكم — هيكلة التبويبات (بعد التعديل)

نظرة عامة — الرئيسية: إحصاءات حيّة (أكواد مُرسلة، نسبة التسليم، القنوات)، قائمة إعداد، آخر النشاط، بانر الربط، جرس الإشعارات (من mersal.it).

المصادقة — إعدادات الكود (طول/نوع/صلاحية/محاولات/قفل…) · الإعدادات العامة بتبويبات: العام، قواعد الهاتف (تحويل تلقائي + تحقّق الرقم + الدول/الصيغة + التصحيح التلقائي intl-tel)، الجلسات، السلوك، + صفحة الدخول وإلزام الدخول.

طرق الدخول — الإيميل (الطريقة / المزوّد + SMTP مخصّص / التحقّق) · الهاتف بتبويب لكل طريقة: واتساب، SMS، تطبيق Authenticator · Google.

المظهر والصفحات — قوالب الرسائل · الهوية والتنسيق (ثيم/ليلي/بدء ليلي/خط/لون زر/شعارات/CSS) · صفحات الدخول والتسجيل.

البيانات والأمان — المستخدمون (عمود الهاتف + بحث) · سجل الأكواد · الأمان · التحديثات.

الحساب — ربط مرسال (SSO + مزامنة البوابات + حالة الاتصال).

## 4. معالجة أرقام الهواتف

- intl-tel-input: محدّد دولة على الحقول، تحويل فوري للصيغة الدولية، كشف الدولة بالـ IP، قائمة دول مسموحة، محاذاة العلم RTL/LTR، محدّدات حقول مخصّصة.
- التحقّق: صيغة الرقم، اشتراط مفتاح الدولة، حجب الأرضي، فحص HLR، كشف الشركة.
- صيغة العرض: دولي / محلي / E.164؛ الدولة الافتراضية.
- الملف الشخصي: عرض الهاتف بشارة تحقّق؛ شريط «أكّد رقمك» (شورتكود + حساب ووكومرس).
- مزامنة هاتف الفوترة في ووكومرس (اتجاهين، قابلة للإيقاف).

## 5. طبقة الأمان

- حد المعدّل — لكل IP/ساعة، لكل مُعرّف/يوم، فترة تهدئة، مفتاح رئيسي.
- القفل — بعد N محاولات فاشلة لمدة محددة؛ خيار كود واحد نشط.
- حجب IP/الدول — قوائم حجب، سياسة سماح أو حجب للدول.
- كشف VPN/Proxy/Datacenter (يفشل بأمان دون حجب خاطئ).
- كشف الأرقام المؤقتة — أنماط، قائمة بادئات، فحص numverify لنوع الخط.
- CAPTCHA — reCAPTCHA v3 / Cloudflare Turnstile / hCaptcha.
- وضع الخصوصية (ضد الحصر)، honeypot، trust-proxy لـ X-Forwarded-For/CF-Connecting-IP.
- فرض 2FA لأدوار (مقيّد بلوحة الإدارة كي لا يقفل الواجهة).
- nonces على كل AJAX؛ كود OTP بمدى كامل وأصفار بادئة.

## 6. الأجهزة والجلسات و2FA

- بصمة جهاز (UA+IP)، حتى 20 جهاز/مستخدم ببيانات (متصفح، نظام، مكان، أول/آخر دخول).
- إلغاء جهاز واحد أو الكل-عدا-الحالي؛ خروج من كل مكان عند تغيير الباسورد؛ تنبيه جهاز جديد (اختياري).
- ربط Authenticator عبر: `/app/pair`، تبويب حساب ووكومرس، تبويب LearnPress، شورتكود `[mersal_authenticator]`.

## 7. المظهر والهوية

- 3 ثيمات (أخضر/سماوي/فاتح)، فاتح/ليلي، بدء ليلي افتراضي، خادمي الرندر (بدون CDN، يدعم RTL).
- سجل 10 خطوط (مصدر واحد، تحميل Google Fonts تلقائي).
- 4 نسخ شعار (AR/EN × فاتح/داكن)، ارتفاع قابل للضبط، لون زر، CSS مخصّص للنموذج.
- قالب صفحة فارغة؛ قوالب رسائل لكل حدث (`{{otp}}` · `{{site_name}}` · `{{expiry}}` · `{{user_name}}` · `{{ip}}`).

## 8. التكاملات والإرسال

- mersal.it SSO + البوابات — ربط لمرة؛ بوابات واتساب/SMS/إيميل تتزامن؛ الإرسال عبر APIs مرسال (وبوابة node/Baileys).
- WooCommerce — OTP عند الدفع، استعادة السلة بعد الخروج، مزامنة هاتف الفوترة، تبويبات حساب (أجهزة، authenticator، شريط تأكيد الرقم)، حجب الدفع حتى تأكيد الإيميل.
- LearnPress — تبويب ربط Authenticator.
- SMTP مخصّص — كل البريد الصادر يمر عبر SMTP المضبوط عند تحديد المضيف.
- Webhooks — `auth.confirm` (موافقة بطاقة التأكيد)، أصوات استطلاع وإيصالات قراءة واردة من بوابة node.

## 9. الشورتكودز

- `[mersal_otp]` (بديل `[motp_login]`) — نموذج الدخول/التسجيل. خصائص: `theme="green|cyan|light"`، `lang="ar|en"`.
- `[mersal_authenticator]` — واجهة ربط التطبيق.
- `[mersal_otp_verify_phone]` — شريط «أكّد رقمك».
- `[mersal_otp_devices]` — مدير الأجهزة والجلسات.

## 10. التحديث الذاتي

يسحب من `https://mersal.it/Wordpress-Plugins` (أعلى إصدار تلقائياً)، يندمج في شاشة تحديثات ووردبريس، يدعم التحديث التلقائي، مع throttle لكل ساعة. قابل للتوسعة لإضافات مرسال الأخرى عبر فلتر `motp_updater_plugins`.

## 11. إصلاحات مراجعة 2026-06-21 (أثناء إعداد هذا الحصر)

- باگ تبويب واتساب (نزول الشاشة + تبوّظ التصميم) — اتظبط: مدخلات الخيارات المخفية صارت محتواة داخل صفّها `.opt` فلم يعد التركيز عليها يقفز بالـ scroll.
- SMTP المخصّص — كان يُخزَّن دون استخدام؛ صار مُطبّقاً عبر `phpmailer_init`.
- «بدء النموذج ليلي» (`form_dark`) — لم يكن يُقرأ ولا له زر؛ صار مربوطاً وله سويتش تحت الهوية والتنسيق.
- راديو «قناة إرسال الكود» (`phone_channel`) — كان مكرّراً مع مفاتيح تفعيل القنوات وغير مُستخدَم؛ أُزيل.
- إعادة الهيكلة — صفحة الهاتف قُسّمت إلى واتساب/SMS/Authenticator؛ «البريد» صار «الإيميل»؛ الإعدادات المشتركة جُمّعت في تبويب «قواعد الهاتف» داخل الإعدادات العامة.