كيفية بناء منصة WordPress SaaS (WaaS) بدون كتابة أكواد
تتيح منصة Website-as-a-Service، أو WaaS، للعملاء التسجيل، والدفع، والحصول على موقع إلكتروني جاهز للعمل في دقائق، بدون أي إعداد يدوي من جانبك. يستعرض هذا الدليل how to build a wordpress saas باستخدام GrabWP Tenancy WaaS، دون كتابة أي أكواد. يتوفر GrabWP WaaS حاليًا في إصدار تجريبي موجه (guided beta)، لذا تعامل معه كمسار إعداد حقيقي مع دعم مباشر، وليس كزر سحري بضغطة واحدة.
ما هو WaaS ولماذا يعتبر WordPress Multi-Tenancy هو الأساس
الـ WaaS هو تحويل خدمة إنشاء المواقع إلى منتج جاهز (productized website service). بدلاً من بناء المواقع واحداً تلو الآخر، يمكنك sell wordpress sites subscription لمنصة تقوم بإنشاء موقع جاهز للاستخدام لكل عميل. فكر في الفرق بين العمل كعامل حر (freelancer) وتقديم منتج استضافة: الـ WaaS يحول عملية التسليم الخاصة بك إلى خدمة ذاتية.
الجزء الصعب هو تزويد كل عميل بموقع WordPress معزول ويعمل بكامل طاقته دون الحاجة إلى إنشاء تثبيت منفصل لكل واحد. هذا بالضبط ما يحله الـ multi-tenancy. يوفر GrabWP Tenancy بنية multi-tenancy بدون استخدام WordPress Multisite، لذلك يحصل كل عميل على tenant معزول من codebase واحد، وبذلك تتجنب تعقيدات الجداول المشتركة (shared-tables) وإدارة الشبكة (network-admin) التي يجلبها Multisite. تعتبر GrabWP WaaS طبقة الـ SaaS ذاتية الخدمة التي تعتمد على محرك الـ tenancy وتضيف إليه عمليات التسجيل، والفواتير، والتجهيز التلقائي لإنشاء منصة website as a service wordpress متكاملة.
إذا كنت ترغب في فهم نموذج العزل الأساسي أولاً، فاقرأ دليل إعداد WordPress multi-tenancy. تفترض طبقة الـ WaaS أن هذا الأساس موجود بالفعل.
مكونات منصة WordPress WaaS
تتكون أي منصة wordpress waas متكاملة من مجموعة من الأجزاء المتحركة. يوفر GrabWP WaaS كل هذه الأجزاء:
- معالج التسجيل (Signup wizard) - مسار متعدد الخطوات يغطي اختيار الخطة، ومتصفح القوالب، والتجهيز التلقائي، والذي يتم إدراجه في الصفحة باستخدام الـ shortcode
[grabwp_waas_signup]. - الفواتير (Billing) - مزودون قابلون للدمج (pluggable providers)، مع دعم مدمج لكل من Polar و WooCommerce. يتوفر أيضًا محول SePay للتحويلات البنكية الفيتنامية بشكل منفصل.
- التجهيز (Provisioning) - نظام state machine متين يقوم بإنشاء الـ tenant بعد عملية الدفع، مع دعم إعادة المحاولة (retry) وإنهاء المهام المتطابق (idempotent finalization).
- لوحة تحكم الـ Tenant - لوحة تحكم العميل عبر
[grabwp_waas_dashboard]، حيث يمكنهم إدارة النطاقات (domains)، والخطة، والنسخ الاحتياطية (backups)، والإعدادات، وحسابهم الشخصي. - لوحة إدارة المنصة (Platform admin) - غرفة التحكم الخاصة بك لإدارة الاشتراكات، ومستويات الخطط، وكتالوج القوالب، وسجل النشاط (activity log)، والتحليلات، واسترداد عمليات التجهيز.
هناك أيضًا صفحة لكتالوج القوالب يمكنك نشرها باستخدام [grabwp_waas_templates]، و REST API كامل متاح على /wp-json/grabwp-waas/v1/، ومكونات Gutenberg كبدائل للـ shortcodes إذا كنت تفضل بناء الصفحات في محرر المكونات (block editor).
إعداد الخطط والمصادقة (Auth)

بمجرد تفعيل الإضافة الأساسية المجانية، GrabWP Tenancy، وطبقة الـ WaaS، يبدأ كل شيء من مكان واحد: GrabWP Tenancy WaaS -> Settings.
هنا تختار مزود الفواتير الخاص بك، وتحدد مستويات الخطط (plan tiers)، وتضبط وضع المصادقة (auth mode)، وتقوم بتعديل قوالب البريد الإلكتروني. مستويات الخطط هي المكان الذي تربط فيه الاشتراكات بما يمكن للـ tenant القيام به، لذا فإن هذه الخطوة هي التي تحول فكرة التسعير الخاصة بك إلى منتج حقيقي. حافظ على بساطة إطلاقك الأول باستخدام عدد قليل من المستويات بدلاً من مصفوفة معقدة.
المصادقة (Authentication) هي قرار واحد بخيارين، يتم التحكم فيهما بواسطة وضع waas_auth:
- تسجيل الدخول الافتراضي لـ WordPress - يحصل العملاء على حسابات WordPress قياسية ويسجلون الدخول باستخدام اسم المستخدم وكلمة المرور.
- رمز التحقق عبر البريد الإلكتروني (Email OTP) - يتلقى العملاء رمزًا لمرة واحدة عبر البريد الإلكتروني، مما يقلل من عقبات التسجيل ويتخطى عناء إدارة كلمات المرور.
اختر الوضع الذي يناسب جمهورك. يميل نظام OTP إلى تحقيق معدلات تحويل أفضل للمشترين غير التقنيين، بينما يعد تسجيل الدخول الافتراضي مألوفًا لمستخدمي WordPress. للحصول على تفاصيل حول الفواتير، بما في ذلك كيفية اختلاف المزودين المدمجين، راجع الدليل المرافق حول فواتير WordPress SaaS باستخدام Polar و WooCommerce.
مسار التسجيل الذاتي الذي يراه العملاء
قم بإنشاء صفحة وأضف الـ shortcode [grabwp_waas_signup]. هذا الـ shortcode الوحيد يقوم بتصيير المعالج متعدد الخطوات (multi-step wizard) بالكامل والذي يمر به عملاؤك:
- اختيار خطة - يحدد العميل أحد المستويات التي قمت بتعريفها.
- تصفح واختيار قالب - يتيح لهم متصفح القوالب معاينة واختيار تصميم أولي من الكتالوج الخاص بك.
- الدفع - تتم عملية الدفع (checkout) من خلال مزود الفواتير الذي قمت بإعداده.
- التجهيز (Provisioning) - ينتقل المعالج إلى التجهيز التلقائي ويعرض مستوى التقدم أثناء بناء الـ tenant.
من وجهة نظر العميل، هذا مسار متصل واحد ينتهي بموقع جاهز للعمل. لا يوجد تبادل لرسائل البريد الإلكتروني، ولا انتظار لتقوم بإعداد أي شيء يدويًا، ولا تعرض للوحة تحكم WordPress (wp-admin) أثناء التسجيل.
شرح آلية التجهيز التلقائي (Automated Provisioning)

التجهيز هو الجزء الذي يتعطل عادةً في أنظمة WaaS المبنية محليًا، لأن عملية الدفع قد تنجح بينما يفشل إنشاء الموقع، مما يترك العميل الدافع بلا شيء. يعالج GrabWP WaaS عملية التجهيز كـ state machine متينة مصممة لتجاوز أنماط الفشل هذه:
- استرداد النوايا المتعثرة (Stale-intent recovery) - إذا تعثرت نية التسجيل في منتصف الطريق، يمكن للمنصة استئنافها بدلاً من تركها معلقة.
- إعادة المحاولة (Retry) - يتم إعادة محاولة الأخطاء العابرة أثناء إنشاء الـ tenant بدلاً من التخلي عن العملية.
- إنهاء متطابق للـ webhook (Idempotent webhook finalization) - إذا أرسل مزود الفواتير نفس الـ webhook مرتين، يتم إنهاء إعداد الـ tenant مرة واحدة فقط، ولا يتم تكراره أبدًا.
عند اكتمال التجهيز، تطلق المنصة إشعارات البريد الإلكتروني و outbound webhooks لتتمكن بقية أدواتك من التفاعل. تغطي رسائل البريد الإلكتروني عمليات التسجيل، وتفعيل النطاق، وفشل الدفع، والإلغاء. تعمل الـ webhooks عند أحداث tenant.created و tenant.deleted و domain.added و payment.received، وهي الطريقة التي تربط بها نظام CRM، أو التحليلات، أو سلسلة الترحيب (onboarding) دون المساس بكود الـ plugin.
لوحة تحكم العميل

انشر صفحة أخرى باستخدام [grabwp_waas_dashboard] وسيحصل عملاؤك على لوحة تحكم ذاتية الخدمة. من خلالها يمكنهم إدارة:
- النطاقات (Domains) - إضافة وتفعيل النطاق الخاص بالـ tenant.
- الخطة (Plan) - عرض وتغيير مستوى الاشتراك الخاص بهم.
- النسخ الاحتياطية (Backups) - الوصول إلى النسخ الاحتياطية الخاصة بالـ tenant.
- الإعدادات والحساب - ضبط إعدادات الـ tenant وإدارة تفاصيل حسابهم الخاص.
نظرًا لأن لوحة التحكم تعتمد على الخدمة الذاتية، فإن معظم الطلبات اليومية التي كانت ستصل إلى صندوق الوارد الخاص بك يتم التعامل معها بواسطة العميل مباشرة. هذا هو الهدف الأساسي من الـ WaaS: المنصة تقوم بأعمال الدعم التي كانت الخدمة اليدوية ستلقيها على عاتقك.
الإطلاق الفعلي (Going Live)
قبل أن تفتح باب التسجيل، قم بتجربة المسار بنفسك كعميل: أكمل عملية تسجيل حقيقية، وتأكد من تجهيز الـ tenant، وأضف نطاقًا، وتحقق من وصول رسائل البريد الإلكتروني الخاصة بالإشعارات. استخدم لوحة إدارة المنصة (platform admin) لمراقبة سجل النشاط (activity log) والتحليلات، واحتفظ بواجهة استرداد التجهيز (provisioning recovery) قريبة تحسبًا لاحتياج أحد التسجيلات المبكرة إلى دفعة.
كن صادقًا عند الإطلاق. نظرًا لأن GrabWP WaaS في مرحلة الإصدار التجريبي الموجه (guided beta)، ابدأ بمجموعة صغيرة من المستخدمين، وضع توقعات واضحة، وانمُ تدريجيًا كلما تأكدت من أن كل جزء من مسار العمل يعمل بنجاح مع عملاء حقيقيين. منصة محكمة وموثوقة لعشرة عملاء أفضل بكثير من منصة غير مستقرة يتم الإعلان عنها لألف شخص.
عندما تكون جاهزًا لبناء منصتك، استكشف GrabWP WaaS وابدأ باستخدام الإضافة الأساسية المجانية GrabWP Tenancy. قم بإعداد خططك، وضع الـ shortcodes الثلاثة، ودع المنصة تتولى عمليات التسجيل، والدفع، والتجهيز بينما تركز أنت على عملائك.
مقالات ذات صلة
الأسئلة الشائعة
- هل أحتاج إلى كتابة أكواد لبناء منصة WordPress SaaS باستخدام GrabWP؟
- لا. GrabWP Tenancy WaaS هي طبقة ذاتية الخدمة تقوم بإعدادها من لوحة تحكم WordPress. تختار مزود الفواتير، وتحدد مستويات الخطط، وتختار طريقة المصادقة، وتضع ثلاثة shortcodes في الصفحات. تتولى الإضافة معالجة معالج التسجيل، وآلية التجهيز (provisioning state machine)، ولوحة تحكم الـ tenant. يمكن للمطورين توسيعها من خلال REST API و outbound webhooks، ولكن ذلك اختياري.
- هل يتطلب GrabWP WaaS استخدام WordPress Multisite؟
- لا. يعمل GrabWP WaaS فوق GrabWP Tenancy، الذي يوفر multi-tenancy بدون استخدام Multisite. يحصل كل عميل على tenant معزول يتم تجهيزه تلقائيًا بعد الدفع، وبذلك تتجنب نموذج الجداول المشتركة (shared-tables) وعبء إدارة الشبكة (network-admin) الذي يفرضه Multisite.
- ماذا يحدث إذا فشل التجهيز في منتصف عملية التسجيل؟
- يعمل التجهيز كـ state machine متينة مع استرداد النوايا المتعثرة (stale-intent recovery)، وإعادة المحاولة التلقائية، وإنهاء متطابق للـ webhook. إذا توقفت إحدى الخطوات أو وصل webhook مرتين، تقوم المنصة بتسوية العملية بدلاً من إنشاء tenant معطل أو مكرر. تتضمن لوحة تحكم المنصة (platform admin) أيضًا واجهة لاسترداد التجهيز للفحص اليدوي.
Editorial standards: Our content is written by WordPress experts with hands-on multi-tenancy experience. Articles are fact-checked and regularly updated to ensure accuracy.