كيفية بناء نظام ترخيص لإضافات WordPress
يتطلب بيع إضافة WordPress تجارية نظام ترخيص.
ستحتاج إلى تفعيل المفاتيح على مواقع العملاء. ستحتاج إلى ربط المفاتيح بنطاقات (domains) محددة. يجب عليك منع المستخدمين من مشاركة مفتاح واحد عبر مواقع متعددة.
يستخدم معظم الناس Freemius أو EDD. تعمل هذه الأدوات بشكل جيد، ومع ذلك، فهي تأخذ حصة من الإيرادات. كما أنها تمثل تبعيات لأطراف خارجية، مما يعني أنك لا تملك العملية بالكامل.
لقد قمنا ببناء نظامنا الخاص لـ RideCab WP. إليك كيفية بناء نظام مخصص من الصفر.
يتكون النظام من جزأين:
خادم الترخيص (The License Server) يعمل هذا الخادم على بنيتك التحتية الخاصة. استخدم إضافة WordPress من نوع "must-use" على موقعك التسويقي. يقوم بتخزين المفاتيح في قاعدة بيانات، ويستخدم REST API للتفعيل والتحقق، كما يوفر لوحة تحكم لإدارة المفاتيح.
العميل (The Client) عبارة عن فئة (class) بلغة PHP داخل إضافتك التجارية. تقوم بإضافة صفحة إعدادات، وتتصل بخادمك للتفعيل، وتقوم بتخزين نتائج التحقق مؤقتًا (cache)، كما تعيد التحقق في الخلفية.
المتطلبات الأساسية:
- إنشاء مفاتيح فريدة أثناء عملية الشراء.
- السماح للعملاء بتفعيل المفاتيح.
- ربط المفاتيح بنطاقات محددة.
- التحقق من صحة المفاتيح بشكل دوري.
- التعامل مع إلغاء التفعيل عند انتقال العملاء إلى مواقع أخرى.
- التعامل مع حالات الفشل بسلاسة في حال توقف خادمك.
القاعدة الأهم هي "الفشل المفتوح" (fail open).
إذا توقف خادم الترخيص الخاص بك، فلا تحرم العميل من الوصول. إذا اخترت "الفشل المغلق" (fail closed)، فسيواجه العميل موقعًا معطلًا، مما يدمر سمعتك. أما إذا اخترت "الفشل المفتوح" (fail open)، فستستمر الإضافة في العمل. قد يستخدمه بعض القراصنة مجانًا، لكن عملاءك الذين يدفعون مقابل الخدمة سيظلون راضين.
أفضل الممارسات:
- استخدم HTTPS لجميع استدعاءات API.
- قم بتخزين نتائج التحقق مؤقتًا (cache) لتحسين الأداء.
- استخدم
random_bytes()للحصول على مفاتيح آمنة، ولا تستخدمrand(). - امنح العملاء وسيلة لإلغاء تفعيل المفاتيح بأنفسهم.
- اسمح بنطاقات الاختبار (staging) أو التطوير (dev).
يغطي هذا الإعداد أساسيات الترخيص، ولكنه لا يشمل عملية تسليم التحديثات، وسأغطي ذلك في منشور مستقبلي.