قاعدة المعرفة

بيع استضافة Zinn® من WHMCS

تثبيت وحدة توفير Zinn Digital® المجانية في WHMCS: مفتاح API والأذونات السبعة التي تتطلبها، وأين يجب وضع دليل الوحدة ولماذا يعد اسمه مهمًا، وحقول المنتجات، وما يفعله كل زر في WHMCS بالفعل.

تحوّل وحدة Zinn Digital® أزرار WHMCS نفسها إلى إجراءات حقيقية على منصتنا. فالطلب يُهيئ استضافة عميلكم. وأتمتة الفواتير المتأخرة في WHMCS تُعلّقها. ووضع علامة "مدفوعة" على الفاتورة يُلغي تعليقها. والإلغاء يجدول عملية الحذف. ويحصل عميلكم على زر Log in to hosting panel في منطقة العميل الخاصة به لتسجيل دخوله مباشرة.

الوحدة مجانية، ومرخصة بموجب GPL-2.0-or-later، وليس لها مسار ذو صلاحيات خاصة إلى منصتنا: فكل استدعاء تُجريه هو نقطة نهاية موثقة يمكنكم إجراؤها بأنفسكم باستخدام مفتاح API الخاص بكم.

قبل أن تبدؤوا

تحتاجون إلى أمرين، والأمر الثاني يفاجئ الكثيرين دون استعداد.

  1. حساب موزع Zinn® مع برنامج نَشِط. سجّلوا في zinndigital.com وقوموا بتفعيل إعادة البيع.
  2. خطة موزع تشتمل على حصة مخصصة للمواقع. تُحسب المواقع التي يطلبها عملاؤكم خصمًا من خطتكم أنتم، لذا تحتاجون إلى خطة تتوفر فيها مساحة شاغرة.

⚠️ لا يمكن لخاصية "اختبار الاتصال" (Test Connection) إخباركم بما إذا كان الطلب سينجح أم لا. فهي تقرأ برنامجكم ولا تُهيئ أي شيء، ولذا فإنها تُبلغ عن حساب active سليم لا يمكنه بيع أي شيء بعد. وإذا فشل طلبكم الأول برسالة "This organization has no hosting plan, so it cannot host a site yet"، فهذا بالضبط ما حدث — اشتروا خطة الموزع الخاصة بكم أو قوموا بتمديدها ثم أعيدوا إرسال الطلب. لا يوجد أي عيب في الوحدة البرمجية.

1. إنشاء مفتاح API

في لوحة تحكم Zinn® الخاصة بكم، افتحوا API keys وأنشئوا مفتاحًا بهذه الصلاحيات الإحدى عشرة تحديدًا:

الصلاحيةسبب الحاجة إليها
org.createفتح حساب Zinn® لعميلكم عند أول طلب له.
org.readقراءة حسابات عملائكم.
sites.createتهيئة الموقع.
sites.viewقراءة الخدمة ومقدار استخدامها.
sites.deleteإنهاء الخدمة.
reseller.viewسرد ما قمتم ببيعه، وقراءة سعة القرص وعرض النطاق الترددي.
reseller.provisionتعليق الخدمة، وإلغاء تعليقها، وتسجيل دخول العميل، وتعيين خطته، وتغيير حزمته.
billing.viewقراءة تكلفة الترقية قبل تنفيذها.
sites.manageإفراغ التخزين المؤقت وإنشاء نسخة احتياطية من الأزرار.
sites.panel_accessتغيير كلمة مرور مسؤول WordPress.
hosting.php.manageتبديل إصدار PHP عند الترقية أو التخفيض.

⛔ لا تمنحوا صلاحية reseller.manage. إن المفتاح المُلصق في لوحة الفوترة ينبغي أن يكون قادرًا على إيقاف العميل مؤقتًا لعدم الدفع وتسجيل دخوله. ولا ينبغي أن يكون قادرًا على قراءة بيانات اعتماد بوابة الدفع الخاصة بكم أو إعادة كتابتها. وُجدت صلاحية reseller.provision حتى لا تضطروا إلى منح الصلاحية الأكبر. ⛔ صلاحية org.create ليست اختيارية. بدونها يمكن للوحدة قراءة حساباتكم ولكنها لا تستطيع فتح حساب جديد، ولذا ينجح اختبار الاتصال (Test Connection) ويُرجع الطلب الأول رمز 403. ⛔⛔ امنحوا جميع الصلاحيات في الجدول، واعلموا أن خاصية "اختبار الاتصال" (Test Connection) لا يمكنها إخباركم إذا لم تفعلوا ذلك. فهي تقرأ برنامج الموزع الخاص بكم ولا تُهيئ أي شيء، ولذلك ستظهر باللون الأخضر حتى مع وجود مفتاح تنقصه أي من هذه الصلاحيات. وما ستحصلون عليه بدلاً من ذلك هو الخطأ 403 في العملية الوحيدة التي تغطيها الصلاحية المفقودة، بعد أشهر، وتتلقونه من أحد العملاء.

2. تثبيت الوحدة

  1. نزّلوا الوحدة وفكوا ضغطها.
  2. ارفعوا المجلد zinn إلى مسار تثبيت WHMCS لديكم حتى يستقر ملف الوحدة في modules/servers/zinn/zinn.php.

⛔ يجب أن يكون اسم المجلد zinn. يشتق WHMCS أسماء وظائف وحدة التهيئة البرمجية من اسم مجلدها، لذا فإن إعادة تسميته إلى zinn-whmcs أو zinndigital ينتج عنها وحدة يعرضها WHMCS في القائمة ويسمح لكم باختيارها ثم لا يستدعيها أبدًا — دون إظهار أي خطأ في أي مكان. إن الملف المضغوط يُفك بالفعل بالاسم الصحيح؛ فقط لا تعيدوا تسميته.

3. إضافة الخادم

في WHMCS: الإعدادات ← إعدادات النظام ← الخوادم ← إضافة خادم جديد (Configuration → System Settings → Servers → Add New Server).

  • Name: أي اسم، على سبيل المثال Zinn Digital®
  • Hostname: api.zinndigital.com
  • Type: Zinn Digital®
  • Password: مفتاح API الخاص بكم من الخطوة 1

⛔ يُوضع المفتاح في حقل Password، والذي يقوم WHMCS بتخزينه مُشفرًا. لا تضعوه في خيار تهيئة المنتج — فهذه الخيارات تُخزّن كنص عادي في قاعدة البيانات وتكون مرئية لكل مسؤول، وبيانات الاعتماد هذه يمكنها إنشاء استضافات عملائكم وتدميرها.

اضغطوا على Test Connection. يُجري هذا الزر استدعاءً حقيقيًا ويُبلغ بما ردت به منصتنا، بدلاً من مجرد التحقق من ملء الحقول.

4. إنشاء المنتج

الإعدادات ← إعدادات النظام ← المنتجات/الخدمات (Configuration → System Settings → Products/Services)، ثم عيّنوا Module Settings على الخادم الذي أضفتموه للتو. الحقول هي:

الحقلمطلوبما هو
Product lineنعمخط إنتاج Zinn® الذي تبيعونه — mainstream (خدمة WordPress المدارة)، أو footprint_free، أو wordpress، أو linux، أو cloud، أو agency، أو app_hosting، أو ai_hosting، أو lms_hosting، أو managed_database، أو vector_hosting، أو zinn_compute، أو fleet_linux، أو fleet_enterprise، أو mail، أو reseller.
Stackنعمما سيتم بناؤه: wordpress (افتراضي)، أو woocommerce، أو php، أو static، أو node، أو one_click، أو headless_cms، أو nextcloud، أو owncloud.
Applicationلامخصص فقط لبيئات العمل one_click وheadless_cms — لتحديد التطبيق المراد تثبيته. ويُرفض تحديد أي تطبيق في أي بيئة عمل أخرى، لأن تلك البيئة تحدد بالفعل ما سيتم تثبيته.
PHP versionلاعلى سبيل المثال 8.3. اتركوه فارغًا لاعتماد القيمة الافتراضية لخط الإنتاج. ويُرفض الإصدار الذي لا يوفره خط الإنتاج مع إظهار قائمة بالإصدارات المتوفرة.
Plan codeنعمخطة Zinn® التي يبيعها هذا المنتج. يسرد المسار GET /v1/reseller/prices خططكم. يُرفض أي طلب بدون هذا الحقل — راجعوا التحذير أدناه.
Billing intervalلاmonthly (افتراضي) أو annual — الفترة التي يتم على أساسها إصدار فاتورة خط الجملة الخاص بكم لهذا العميل. أما ما تتقاضونه من عميلكم فيتم تعيينه في منتج WHMCS ولا يتأثر بذلك.

⛔⛔ رمز الخطة (Plan code) مطلوب، وأي طلب بدونه يُرفض عمدًا. حتى تاريخ 2026-09-01 كان الحقل شكليًا ولا يقرؤه أي شيء، ولذا كانت الوحدة تطلب استضافة لا تحمل أي خطة على الإطلاق — وكانت كل عواقب ذلك تحدث بصمت. كشف حساب الجملة لديكم مبني من اشتراكات عملائكم النشطة، وبالتالي لم يكن هناك بند لتلك الخدمة ولم تتم فوترة أي مبلغ عليكم طوال فترة عملها؛ ولم يرث عميلكم أي مخصصات، ولذا لم يتم تطبيق أي حصة لسعة القرص أو عدد الملفات على موقعه؛ ولم يكن أمام خيار "تغيير الحزمة" (Change Package) أي شيء ليُغيّره، فلم يكن بالإمكان تنفيذ الترقية التي قمتم ببيعها. كان الموقع يُهيأ ويعمل بصورة مثالية طوال الوقت.

ترفض الوحدة الآن الطلب بدلاً من ذلك، لأنه لا توجد خطة آمنة يمكنها تخمينها: فالتخمين كان سيُهيئ الاستضافة على خطة لم تختاروها وقد لا تكونوا قد حددتم سعرها، و— على عكس الرفض الذي تقرؤونه فورًا — لم تكن المشكلة لتظهر إلا عند وصول كشف الحساب، هذا إن ظهرت أصلًا.

اضبطوا Auto Setup على الخيار الذي تفضلونه — فالوحدة ذات استجابة حيادية لا تتكرر (idempotent) بالاعتماد على معرف خدمة WHMCS، لذا فإن إعادة محاولة التهيئة تُرجع الموقع نفسه بدلاً من فوترة موقع ثانٍ عليكم.

ما يفعله كل إجراء من إجراءات WHMCS

إجراء WHMCSما يحدث من جانبنا
Createيُنشئ حساب Zinn® الخاص بالعميل (أو يعيد استخدام الحساب الموجود لديه بالفعل) ويُهيئ موقعه.
Suspendيضع الموقع قيد الإيقاف المؤقت لعدم الدفع. يتم الاحتفاظ بالمحتوى؛ ولا يُحذف أي شيء.
Unsuspendيُلغي إجراء الإيقاف الخاص بكم.
Terminateيُجدول حذف الموقع، مع فترة سماح. يظهر التاريخ في منطقة العميل.
Usage updateيُحدّث بيانات سعة القرص وعرض النطاق الترددي لكل خدمة، مرة واحدة يوميًا.
Log in to hosting panelيفتح رابط تسجيل دخول يُستخدم لمرة واحدة مباشرة إلى لوحة تحكم عميلكم.
Change Packageيُرقي الخدمة أو يُخفضها. ينقل الحزمة، وينقل إصدار PHP إذا كان المنتج الجديد يُحدد إصدارًا.
Change Passwordيضبط كلمة مرور مسؤول WordPress. لا يظهر المربع في بيئات العمل التي لا تحتوي على مثل هذا الحساب.
Renewيؤكد أن الخدمة ما زالت موجودة. استضافة Zinn® مستمرة، لذا لا توجد مدة بعيدة لتمديدها.
Sync Usage / Purge Cache / Take Backupأزرار في صفحة خدمة المسؤول. يحصل عميلكم على زري Purge Cache وTake Backup في منطقة العميل الخاصة به.
Service tabالحالة، والخطة، وسعة القرص، وعرض النطاق الترددي، وأي حذف مُجدول، والجهة التي نفذت التعليق.
Importيقرأ ListAccounts كل الصفحات، لذا لا يمكن للاستيراد أن يتوقف بصمت عند الصفحة الأولى.

الترقيات: مَن يُحصّل الرسوم من مَن

لا تصدر Zinn® فواتير لعميلكم أبدًا، سواء عند تقديم الطلب أو عند الترقية. أنتم من تصدرون الفواتير له عبر WHMCS؛ ونحن نصدر الفواتير لكم، في كشف حساب الجملة الخاص بكم. وبالتالي فإن خيار "تغيير الحزمة" (Change Package) ينقل مستحقات عميلكم والبند الموجود في كشف حسابكم التالي، ولا يمس أي بطاقة بنكية — فقد قام WHMCS بالفعل بتحصيل أموال عميلكم وحساب التوزيع التناسبي (proration) الخاص به.

الخدمة الثانية للعميل. إذا كانت على الخطة نفسها، فإنها تُعد موقعًا آخر ضمن حصة المواقع المخصصة لتلك الخطة، ولا يتم منح أي شيء إضافي. أما إذا كانت على خطة مختلفة، فسيتم رفضها: لأن استبدال الخطة النشطة سيترك إحدى الخدمتين دون فوترة. إما أن تبيعوا كلتيهما على الخطة نفسها، أو تقوموا بإعداد العميل كسجل عميل منفصل في WHMCS.

خيار Change Password متاح فقط لـ WordPress. لا تحتوي استضافة Zinn® على "كلمة مرور خدمة" وحيدة — إذ يصل عميلكم إلى لوحته عبر زر تسجيل الدخول — ولا يحتوي موقع php أو static على حساب تطبيق لتغييره. يُخفي WHMCS المربع بالكامل بدلاً من إظهار مربع لا يمكنه العمل.

ثلاثة ردود لا يجوز اختزالها في ردين

  • يمكن أن يرد إلغاء التعليق (Unsuspend) بالرفض. يعني ذلك أن الموقع تم تعليقه من قِبل فريق مكافحة الانتهاكات لدينا، وليس من قِبلكم، ولا يجوز لأي لوحة فوترة إلغاء تعليقه. تنص الرسالة على ذلك؛ اعرضوها على المسؤول لديكم بدلاً من إعادة المحاولة.
  • إجراء الإنهاء (Terminate) يجدول عملية الحذف، ولا ينفذها فورًا. يعود التاريخ بالقيمة pending_deletion_at وتعرضه منطقة العميل. وإخبار العميل بأن بياناته قد حُذفت بالفعل بينما هي ليست كذلك أسوأ من عدم إخباره بأي شيء.
  • يمكن أن تكون سعة القرص وعرض النطاق الترددي غير معروفين، وحالة "غير معروف" ليست صفرًا. عندما لا نتمكن من أخذ قراءة، تترك الوحدة الرقم كما هو بدلاً من كتابة 0 — وإلا فإن WHMCS سيعرض لعميلكم شريط استخدام فارغًا يبعث على الاطمئنان الزائف لموقع ليس لدينا قراءة له.

استكشاف الأخطاء وإصلاحها

نجاح اختبار الاتصال (Test Connection) وفشل الطلب الأول بخطأ في الصلاحيات. مفتاح API ينقصه org.create. يجب على الوحدة فتح حساب العميل قبل أن تتمكن من إنشاء موقعه.

فشل طلب مع ظهور رسالة تفيد بأن المؤسسة ليس لديها خطة استضافة. لم يتبق في خطة الموزع لديكم أي حصة مواقع متبقية، أو أنكم لا تملكون خطة بعد. راجعوا قسم قبل أن تبدؤوا أعلاه.

فشل طلب مع الإشارة إلى بيئة العمل (stack). حقل Stack في المنتج فارغ أو يحدد شيئًا لا نقوم ببنائه. اضبطوه على wordpress ما لم تكونوا تبيعون شيئًا آخر.

عمليات الإلغاء تفشل. تأكدوا من أنكم تستخدمون إصدار الوحدة 1.0.0 أو إصدارًا أحدث. فالإصدارات الأقدم لم تكن ترسل تأكيد الحذف وكان كل طلب إنهاء يُقابل بالرفض، مما كان يترك الخدمة قيد التشغيل وقيد الفوترة.

حالة رفض تُحدد حقلًا بعينه. تذكر أخطاء التحقق لدينا اسم الحقل والسبب بين قوسين بعد الرسالة، مثل: (php_version: 7.2 is not offered on this product line). هذا النصف هو القابل للتنفيذ — فالجملة السابقة له عامة بطبيعتها عمدًا.

التحقق من التنزيل الخاص بكم

يتم تقديم كل أرشيف عبر بروتوكول TLS من اسم المضيف الخاص بنا ولا تتم إعادة توجيهه أبدًا إلى مضيف تابع لجهة خارجية. يتم عرض مجموع التحقق SHA-256 الخاص به بجانب رابط التنزيل في صفحة التنزيلات. قارنوه بعد التنزيل:

  • نظام macOS أو Linux: shasum -a 256 zinn-whmcs-1.0.0.zip
  • نظام Windows: certutil -hashfile zinn-whmcs-1.0.0.zip SHA256

لا تستخدمون WHMCS؟

توجد وحدة لـ HostBill وعميل PHP وحيد الملف لأي نظام آخر، وكلاهما مجاني وكلاهما في صفحة التنزيلات نفسها. كل نقطة نهاية تستخدمها الوحدات موجودة في مرجع API.

الأحدث من المدونة

ما كتبناه حول الاستضافة، وتحسين محركات البحث (SEO)، وإدارة المواقع على نطاق واسع.

تحسين محركات البحث وبناء الروابط من طبقة الاستضافة: رؤية المشغل لعام 2026

كيف تؤثر الاستضافة على الفهرسة وقيمة الروابط في عام 2026: الحفاظ على فهرسة الصفحات، وفحص النطاقات القديمة قبل البناء عليها، وبناء الروابط دون ترك أثر لمحركات البحث، ونظرة صادقة حول ما يمكن للبنية التحتية تقديمه لتهيئة محركات البحث (SEO) وما لا يمكنها فعله.

قراءة المنشور ←

جعل WordPress سريعًا وآمنًا: قائمة تحقق للأداء والمكونات الإضافية

قائمة تحقق عملية للحصول على WordPress سريع وآمن: التخزين المؤقت على مستوى الخادم، وذاكرة تخزين مؤقت للكائنات لكل موقع، ومجموعة المكونات الإضافية القليلة التي تستحق التشغيل، والحفاظ على حداثة الحزمة البرمجية، وصفحات WooCommerce التي يجب ألا تخزنها مؤقتًا أبدًا.

قراءة المنشور ←

كيف تختار استضافة ويب مدارة في عام 2026: دليل المشتري

ما الذي يميز فعلياً الاستضافة المدارة الجيدة عن خادم رخيص مع لوحة تحكم — عمليات النقل، والنسخ الاحتياطي، والعزل، والتخزين المؤقت الحقيقي، وقابلية التوسع الصادقة — وكيفية الحكم عليها قبل الالتزام.

قراءة المنشور ←

اقرأ المدونة ←

ما زلت عالقًا؟

الدعم مشمول في كل خطة، ومكتب الدعم مفتوح 24 ساعة في اليوم، ويمكنك مراسلتنا بأي لغة من لغاتنا البالغ عددها 58 لغة — وسنرد عليك بلغتك.

الاتصال بالدعم → جميع المقالات →