خدمة WordPress · تطوير متقدم
تطوير إضافات ووردبريس مخصصة لوظائف لا توفرها الحلول الجاهزة
عندما تحتاج وظيفة لا تجدها في إضافة جاهزة، أو تجدها مبعثرة بين خمس إضافات متضاربة، أكتبها لك كإضافة مستقلة: منظمة، قابلة للتحديث والإزالة دون أثر، مختبرة، وموثقة. لا مقتطفات في functions.php تضيع عند تغيير القالب.
متى تبني إضافة خاصة
ثلاثة مسارات لأي وظيفة جديدة، وإضافة مخصصة ليست دائمًا أولها
أرشح الإضافة الجاهزة عندما تفي بالغرض فعلًا. الإضافة المخصصة قرار له كلفة تطوير وصيانة، ويستحق عندما تكون الوظيفة جوهرية لعملك أو لا يوجد ما يؤديها بأمان.
| المسار | متى يناسب | المخاطر | الصيانة |
|---|---|---|---|
| إضافة جاهزة من المستودع الرسمي | الوظيفة شائعة (نماذج، SEO، كاش) والإضافة محدثة ومستخدمة على نطاق واسع | مزايا زائدة، حمل إضافي، اعتماد على طرف ثالث قد يتوقف أو يصبح مدفوعًا | تحديثات من المطور الأصلي؛ تُختبر على التجريبي قبل الحي |
| مقتطف في functions.php أو إضافة «code snippets» | تعديل صغير جدًا على سلوك قائم (سطر أو سطران) | يضيع عند تغيير القالب، لا اختبار، لا إزالة نظيفة، يتراكم حتى يصبح غير مقروء | لا أحد يعرف من كتبه ولماذا بعد سنة |
| إضافة مخصصة | وظيفة جوهرية لعملك، أو تجمع ما كان يحتاج عدة إضافات، أو تتعامل مع بيانات وصلاحيات خاصة | كلفة تطوير أولية، وتحتاج مطورًا عند تحديث كبير في ووردبريس أو PHP | موثقة ومنظمة؛ أي مطور يستطيع صيانتها، وأقدم تحديثها ضمن الصيانة |
منصات ومنتجات رقمية مبنية على ووردبريس
منصات إشعارات ومنتجات تقنية؛ مواقع يتجاوز فيها المطلوب إعدادات القالب إلى منطق برمجي مستقل يُدار ويُحدَّث كإضافة.
-

webpushly
webpushly، موقع ووردبريس في مجال إشعارات المواقع؛ عرض الخدمة، شرح الاستخدام، الروابط.
-

Smart Push
Smart Push، موقع ووردبريس في مجال منصات الإشعارات؛ معاينة الرسائل، تقديم المنصة، تسلسل الشرح.
-

unixgtc
unixgtc، موقع ووردبريس في مجال خدمات الأجهزة واستعادة البيانات؛ صور الأجهزة، مجالات الخدمة، طلب التواصل.
-

Tawartec
Tawartec، موقع ووردبريس في مجال الاستضافة والخدمات التقنية؛ تعريف الخدمة، نبذة الشركة، تنظيم القائمة.
-

Qualidev
Qualidev، موقع ووردبريس في مجال الخدمات البرمجية والسحابية؛ عرض الخدمة، تعريف الشركة، تصنيف الحلول.
-

SmartUp Egypt
SmartUp Egypt، موقع ووردبريس في مجال الحلول البرمجية؛ تقديم الشركة، خدمات البرمجيات، تنظيم الروابط.
-

لانا AI
لانا AI، موقع ووردبريس في مجال منصات تجربة الموظفين؛ عرض المنصة، المزايا، التواصل.
حالات استخدام
أمثلة لوظائف تستحق إضافة مستقلة
الأمثلة توصيف لأنواع الطلبات التي يناسبها هذا المسار، وليست قائمة بإضافات منشورة أو بأرقام تحميل.
- قاعدة تسعير أو شحن خاصة في WooCommerce
خصم حسب الكمية والمدينة والعميل معًا، أو رسوم شحن تعتمد على وزن وحجم ومنطقة لا تغطيها إعدادات الشحن الافتراضية. تُكتب بواجهات WooCommerce الرسمية لتبقى متوافقة مع HPOS.
- مسار REST لتطبيق أو نظام خارجي
نقطة نهاية تستقبل أو تقدم بيانات لتطبيق موبايل أو نظام داخلي، بتحقق من الهوية وصلاحيات لكل مسار، وتوثيق لمن سيستهلكها.
- بيانات لا تناسب جداول ووردبريس
سجلات كثيرة بهيكل ثابت (قراءات، حجوزات، معاملات) تحتاج جدولًا خاصًا بفهارس بدل تخزينها كـ post meta يبطئ الموقع.
- بلوك مخصص لمحرر المحتوى
بلوك Gutenberg لعنصر يتكرر في المحتوى (جدول مقارنة، حاسبة، بطاقة منتج) بحقول محكومة بدل لصق HTML في كل مرة.
- مهام مجدولة ومعالجة في الخلفية
مزامنة دورية، تنظيف سجلات، إرسال تقارير، بمهام WP-Cron أو مجدول خارجي مع تسجيل للنتائج وإعادة المحاولة عند الفشل.
- دور مستخدم وواجهة إدارية خاصة
دور بصلاحيات محددة (مثلًا موظف يراجع الطلبات دون الوصول للإعدادات) وشاشة إدارة مبسطة له.
- نقاط الدخول والتحقق
- طبقات الإضافة
- اختبار وسجلات
- دورة الحياة
مخطط البنية
طبقات واضحة: من يدخل، من يتحقق، أين تُخزن البيانات
كل إضافة أكتبها تتبع البنية نفسها حتى يستطيع مطور آخر فهمها في ساعة: نقاط دخول (شاشة إدارة، بلوك، مسار REST)، طبقة تحقق موحدة (صلاحية، نونس، تنقية)، ثم المنطق عبر واجهات ووردبريس الرسمية، ثم التخزين.
قرار التخزين يُتخذ مبكرًا: الإعدادات القليلة في Options، البيانات المرتبطة بمحتوى في post meta، والسجلات الكثيرة أو التي تُفلتر كثيرًا في جدول مخصص بفهارس. التخزين الخاطئ هو أكثر سبب للبطء الذي أراه في إضافات مكتوبة على عجل.
دورة الحياة جزء من التصميم: التفعيل ينشئ ما يلزم، والإلغاء يوقف المهام المجدولة، والحذف يزيل الجداول والخيارات إن اخترت ذلك، فلا تبقى بقايا في قاعدة البيانات.
ما يشمله التطوير
من اكتشاف المتطلبات إلى حزمة إضافة بدليل تشغيل
- اكتشاف المتطلبات والواجهاتما الوظيفة بالضبط، من يستخدمها، ما البيانات التي تدخل وتخرج، وأي واجهات ووردبريس أو WooCommerce أو خارجية تلزم. ينتهي بمواصفة مكتوبة.
- تصميم البنية ومخطط البياناتملفات الإضافة، الـ hooks المستخدمة، قرار التخزين (options/meta/جدول)، والصلاحيات لكل فعل.
- التطوير وفق المعاييرWordPress Coding Standards، بادئة فريدة للدوال والجداول، نصوص قابلة للترجمة، وتوافق مع إصدارات PHP وووردبريس المحددة في النطاق.
- واجهة إعدادات عند الحاجةشاشة إدارة بـ Settings API أو واجهة مبسطة، بحقول موثقة ورسائل خطأ مفهومة. لا إعدادات لا يحتاجها أحد.
- الاختباراختبارات وحدة للمنطق الحساس (الحسابات، الصلاحيات)، وسيناريوهات يدوية موثقة على نسخة تجريبية، بما فيها حالات الفشل.
- التوثيق والتسليمREADME داخل الإضافة: الغرض، الإعدادات، الـ hooks التي تتيحها للتخصيص، وكيفية التحديث والإزالة.
الأمان والتوافق
ما أتحقق منه في كل طلب تعالجه الإضافة
من WordPress Plugin Handbook مباشرة، لأن أغلب ثغرات الإضافات تأتي من تجاوز خطوة من هذه الخطوات.
- الصلاحية أولًا
كل فعل إداري يبدأ بـ current_user_can بصلاحية محددة. الدور «مدير» ليس شرطًا لكل شيء؛ أعرّف صلاحيات دقيقة عند الحاجة.
- النونس ليس تفويضًا
النونس يمنع تنفيذ طلب مزور عبر المتصفح (CSRF) ولا يثبت أن المستخدم مخول. لذلك يأتي بعد فحص الصلاحية لا بدلًا منه.
- تنقية الداخل وتهريب الخارج
sanitize_* لكل مدخل حسب نوعه، وesc_* أو wp_kses لكل مخرج في موضعه (HTML، سمة، رابط، JavaScript).
- استعلامات مُجهزة
أي استعلام مباشر يمر بـ $wpdb->prepare، ولا تُدمج قيم المستخدم في SQL أبدًا. الجداول المخصصة لها بادئة الموقع.
- REST بصلاحيات لكل مسار
كل مسار يحدد permission_callback صريحًا؛ المسارات العامة عامة بقرار موثق لا بالسهو. الأسرار في الخادم لا في JavaScript.
- التوافق مع HPOS والمحرر
بيانات الطلبات عبر WC_Order CRUD لا الوصول المباشر للجداول، وإعلان التوافق مع HPOS. البلوكات تُختبر في المحرر وفي Site Editor.
التسليم وملكية الكود
تستلم إضافة تعمل وتفهمها وتملكها
- مواصفة مكتوبة
الوظيفة، المدخلات والمخرجات، الصلاحيات، الواجهات، وحالات الفشل المتوقعة. تُعتمد منك قبل البدء.
المخرج: مواصفة وعرض سعر - نسخة أولى على التجريبي
الإضافة تعمل بالمنطق الأساسي على نسخة تجريبية من موقعك أو بيئة مماثلة لتراجعها مبكرًا.
المخرج: نسخة قابلة للتجربة - اكتمال واختبار
الواجهة والحالات الطرفية والاختبارات وسجل الأخطاء. مراجعة أمنية وفق القائمة أعلاه.
المخرج: تقرير اختبار - التفعيل على الموقع الحي
نسخة احتياطية، تفعيل في نافذة مناسبة، مراقبة السجلات في الأيام الأولى.
المخرج: إضافة مفعلة ومراقبة - التسليم
ملفات الإضافة كاملة، README، وجلسة قصيرة تشرح الإعدادات وما يمكن لفريقك تغييره.
المخرج: حزمة إضافة موثقة باسمك
ما أحتاجه منك
- وصف الوظيفة بلغة العمل لا بلغة البرمجة
- وصول لنسخة تجريبية من الموقع أو بيانات نموذجية
- توثيق أي واجهة خارجية ستتصل بها الإضافة وبيانات بيئة الاختبار
- إصدارات PHP وووردبريس وWooCommerce لديك
- من سيستخدم الإضافة ومن سيدير إعداداتها
ما تستلمه
- إضافة مستقلة ببنية موثقة وبادئة فريدة
- واجهة إعدادات عند الحاجة
- اختبارات ونتائجها وسجل أخطاء مقروء
- تفعيل وإلغاء وإزالة نظيفة
- README وملكية كاملة للكود
خارج النطاق إلا باتفاق
- تطوير الطرف الخارجي أو رسومه
- النشر في WordPress.org ومتطلبات مراجعته
- تكاملات معقدة مع أنظمة خارجية (خدمة التكاملات)
- سير عمل كامل بأنواع محتوى ولوحات (الوظائف المخصصة)
- تحديثات التوافق بعد فترة المتابعة إلا باتفاق صيانة
أسئلة شائعة
أسئلة قبل تطوير الإضافة
هل أحتاج إضافة خاصة أم تكفي إضافة جاهزة؟
هل تعمل الإضافة مع WooCommerce؟
هل ستعمل بعد تحديث ووردبريس؟
هل يمكن نشر الإضافة في WordPress.org؟
لمن ملكية الكود؟
كيف أتأكد أن الإضافة لا تبطئ الموقع؟
صف الوظيفة التي تحتاجها بلغة عملك، وسأرد بمسار التنفيذ الأنسب ومواصفة مبدئية
اذكر ما يجب أن يحدث، لمن، وما البيانات التي تدخل وتخرج، وإن كنت جربت إضافات جاهزة ولماذا لم تكفِ.
