Rebex Telegram: إضافة WordPress تربط الإشعارات بتلغرام
كواليس وتفاصيل هندسة إضافة WordPress مخصصة تقوم باعتراض البريد الصادر وترجمته ديناميكياً إلى رسائل تلغرام فورية مع الحفاظ على أمان البيانات.
محتوى المقالة
في مشروع Bila Academy، واجهتُ تحدياً تشغيلياً تمثل في ضياع الرسائل والإشعارات المهمة مثل تسجيلات الطلاب الجديدة وتنبيهات الدفع ورسائل الدعم الفني في زحام البريد الإلكتروني للوردبريس.
أدى هذا التأخير في المتابعة إلى إبطاء زمن الاستجابة والـ Response Time للطلاب والعملاء.
برغم وجود إضافات عديدة تحقق هذا الأمر, لكن مع محدودبة التكلفة التشغيلية للعميل, كان لا بد من إيجاد حل لهذه العقبة بالمتطلبات اللازمة. وكان الحل المتكامل الذي بنيتُه هو إضافة WordPress مخصصة تحمل اسم Rebex Telegram.
تتمحور وظيفة هذه الإضافة حول مراقبة الرسائل الإلكترونية الصادرة وتوجيه نسخة منها (الواردة لعناوين الكترونية معينة فقط) فوراً إلى مجموعة تلغرام الخاصة بفريق العمل.
1. الفكرة والمعمارية البرمجية (Architecture)
بدلاً من الاعتماد على إضافات خارجية ثقيلة أو خدمات وسيطة مدفوعة مثل Zapier، بنيتُ الإضافة كإضافة WordPress خفيفة ومستقلة.
تعتمد الإضافة على نمط المراقب (Observer Pattern) بأسلوب غير معطل لنظام البريد الأساسي من خلال المكونات التالية:
- الاعتراض غير المعطل (The
wp_mailFilter Hook): تستخدم الإضافة خطاف الفلترةwp_mailالخاص بنظام WordPress لتفحص قائمة المستقبلينemailsعندما تقوم أي إضافة أخرى بإرسال بريد. - التنفيذ الآمن لحظر الأخطاء (Observation-Only & Exception Swallowing): صممتُ كلاس
Rebex_Telegram_Mailerليعيد معاملات البريد الأصلي دون أي تعديل مع إحاطة عمليات الاتصال بدوالtry/catch.
2. معالجة النصوص وتحويل الـ HTML إلى Telegram Blocks
إحدى أكبر التحديات في توجيه البريد إلى تلغرام هي أن نصوص البريد الإلكتروني غالباً ما تُرسل بهيكل HTML معقد قد يتسبب في تشوه شكل الرسالة داخل تطبيق تلغرام.
ولحل هذه المشكلة، طوّرتُ وحدة معالجة مخصصة (Rebex_Telegram_Converter)، والتي تعتمد على الميزات التالية:
- تحليل شجرة المستند (
DOMDocumentParsing): تقوم بتفكيك هيكلية الـ HTML وتحويلها إلى كتل نصية منسقة بصرياً تناسب الشاشات الصغيرة. - التراجع الآمن (Fallback Mechanism): تتراجع الإضافة تلقائياً لتجريد الوسوم باستخدام
wp_strip_all_tagsفي حال عدم توفر مكتبة DOM على السيرفر. - دعم أنماط العرض (Parse Modes): إتاحة التنسيق عبر
HTMLأوMarkdownV2أو النصوص المجردةPlain. - معالجة الحدود القصوى: قص النصوص تلقائياً لعدم تجاوز حد تلغرام الأقصى للرسالة الواحدة وهو 4,096 حرفاً.
3. التحديات التقنية والحلول
أ. الأمان وتخزين رمز الـ Bot Token
تخزين bot_token الخاص بالبوت يُعد مسألة حساسة جداً؛ لذا اتبعتُ المعايير التالية لتأمينه:
- تشفير وقناع العرض (Token Masking): لا يُعرض الرمز الحقيقي مطلقاً في خانة الإعدادات داخل لوحة التحكم بعد حفظه، بل يتم تغطيته بقيمة مؤمنة (
__unchanged__). - صلاحيات الوصول: تقييد إمكانية تعديل الإعدادات أو تشغيل اختبار الإرسال بـ
manage_optionsللرتب الإدارية فقط مع التحقق من معايير النواياNonces. - الفحص الهيكلي (Regex Sanitization): التحقق من صحة صيغة الـ Token عبر النمط الرياضي المباشر قبل حفظه في خيارات الموقع
rebex_telegram_settings.
ب. تجربة المستخدم داخل لوحة التحكم (User Experience)
- إضافة خيار "إرسال رسالة اختبار" (Send Test Message) باستخدام طلبات AJAX التفاعلية للتأكد من ربط البوت والمجموعة بنجاح.
- إمكانية التحكم بتشغيل أو إيقاف معاينة الرابط
disable_link_previewلتجنب ازدحام المجموعة بالروابط المعروضة.
4. النتائج والتحسين التشغيلي
- تنبيهات فورية خلال ثوانٍ: تحول زمن التنبيه بالرسائل والتسجيلات الحرجة من القراءة الدورية للبريد إلى وصول إشعار فوري لجميع أفراد الفريق.
- انخفاض زمن الاستجابة: تقلص زمن الرد على استفسارات الطلاب من ساعات إلى دقائق معدودة.
- اعتمادية استثنائية (100% Zero-Breakage): أثبت التصميم المعتمد على نمط المراقبة الخالصة استقراره دون تأخير البريد الأصلي إطلاقاً.
الدروس المستفادة
- البرمجة الدفاعية (Defensive Programming): يجب تجنيب النواة الأساسية أخطاء الاتصال دائماً عند بناء إضافات تعتمد على API خارجي داخل ووردبريس.
- استغلال أدوات النواة (WordPress Core APIs): استخدام
WP_Httpيضمن احترام إعدادات البروكسي وشهادات SSL الخاصة بالسيرفر دون الحاجة لمكتبات cURL خارجية. - التكامل الذكي يرفع إنتاجية الفريق: ربط بيئة العمل اليومية ببيانات المبيعات والدعم يوفر مئات الساعات التشغيلية.
هل أثار ذلك فضولك؟ يمكنك الاطلاع على مشروع Bila Academy - منصة تعليمية متكاملة لتتوضح لك الحاجة لمثل هذه الإضافات البسيطة في مشروع بهذا الحجم.