نظام الدفع مقابل النشر في ووردبريس بـ JetEngine

رموز رصيد مضيئة تدخل جهاز نشر، تعبيراً عن نظام الدفع مقابل النشر في ووردبريس

عندك موقع دليل شركات أو إعلانات مبوبة، والنشر فيه ببلاش؟ يبقى أكيد شفت الإعلانات المكررة والسبام، وفي الآخر مفيش دخل يغطي وقت المراجعة. الحل اللي مواقع كتير بقت ماشية عليه بسيط: «ادفع 10 دولار (حوالي 500 جنيه) وانشر 3 إعلانات»، والرصيد يخلص مع كل نشرة.

ما هو نظام الدفع مقابل النشر؟

الدفع مقابل النشر (Pay-Per-Post) نموذج يشتري فيه المستخدم رصيداً من المنشورات مقدماً، ويخصم كل منشور وحدة واحدة من رصيده. عندما يصل الرصيد إلى صفر، يتوقف النشر حتى يشتري باقة جديدة.

الفرق عن الحلول الأخرى واضح: جدار الدفع (Paywall) يحجب المحتوى عن القارئ، والعضوية (Membership) تبيع وصولاً لمدة زمنية. أما هنا فالمستخدم يدفع لكي ينشر، لا لكي يقرأ.

ستجد الفكرة نفسها في مواقع تعرفها: لوحات الوظائف التي تحاسب صاحب العمل على كل إعلان، ومواقع الإعلانات المبوبة التي تبيع باقات إعلانات بخصم، وUpwork التي تبيع للمستقلين رصيد «Connects» يُستهلك مع كل عرض يقدمونه.

لماذا يناسب مواقع الأدلة أكثر من الاشتراك الشهري؟

صاحب محل صغير يحتاج إعلاناً أو اثنين في السنة لن يدفع اشتراكاً شهرياً. أما مبلغ صغير مرة واحدة مقابل نتيجة واضحة فقراره أسهل بكثير.

مقارنة سريعة

رصيد النشر أم الاشتراك الشهري؟

أيهما يناسب موقع دليل أو إعلانات مبوبة

المعياررصيد النشراشتراك شهري
حاجز الدخولمنخفضالتزام متكرر
الأنسب لـالناشر العرضيالناشر الكثيف
الإيراد مرتبط بـكل منشورالمدة الزمنية
التجديد والإلغاءلا يوجدإدارة مستمرة
الحد من السباملكل منشور ثمنالتكلفة موزعة
ابن موقعك قطعة قطعةarabcms.com

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

ملاحظة: لا يلزمك الاختيار بين النموذجين. مواقع كثيرة تجمعهما: اشتراك للناشر الكثيف، وباقات رصيد لمن ينشر بين حين وآخر.

أين يصلح هذا النموذج؟

  • مواقع الأدلة: دليل شركات أو عيادات أو مطاعم في مدينة معينة، يشتري فيه النشاط التجاري باقة من 5 إدراجات ويستخدمها متى شاء.
  • الإعلانات المبوبة والعقارات: باقة إعلانات للبائع أو السمسار، مع سعر أقل للباقة الأكبر.
  • لوحات الوظائف: الشركة تدفع لكل وظيفة تنشرها بدلاً من عضوية ثابتة.
  • منصات المقالات الضيفة: يشتري الكاتب أو الشركة «خانة نشر» ويرسل مقاله مباشرة بدلاً من التفاوض يدوياً على كل مقال.

المكونات الثلاثة التي تحتاجها

أي نظام رصيد يتكون من ثلاث قطع فقط، وكل قطعة منها تبنيها بأداة من حزمة Crocoblock:

  1. رصيد مخزَّن في حساب المستخدم: حقل رقمي ضمن بيانات المستخدم الإضافية (User Meta) تنشئه بـ JetEngine.
  2. مسار دفع يزيد الرصيد: نموذج شراء في JetFormBuilder يضيف عدد منشورات الباقة بعد نجاح الدفع فقط.
  3. بوابة على نموذج النشر: تتحقق من الرصيد قبل الإرسال، وتخصم منه وحدة مع كل منشور.

JetEngine + JetFormBuilder

نظام الرصيد في 4 قطع

  1. حقل الرصيد

    حقل Number باسم post_credits في Meta Box للمستخدمين.

  2. نموذج الشراء

    يضيف عدد منشورات الباقة بعد GATEWAY.SUCCESS فقط.

  3. نموذج النشر

    ينشئ المنشور بحالة Pending ويخصم وحدة من الرصيد.

  4. الإخفاء عند الصفر

    Dynamic Visibility تخفي النموذج وتُظهر زر الشراء.

ابن موقعك قطعة قطعةarabcms.com

بصراحة: مقال Crocoblock يشرح الفكرة ومنطقها، لكنه لا يقدم خطوات إعداد تفصيلية لنظام الرصيد. الخطوات التالية قراءتنا لوثائق JetFormBuilder وJetEngine الرسمية، ولم نختبرها على موقع حي؛ جرّبها على نسخة تجريبية من موقعك أولاً.

خطوات البناء في JetEngine وJetFormBuilder

1. أنشئ حقل الرصيد

من JetEngine افتح Meta Boxes وأضف صندوق حقول جديداً، واختر أن يظهر في صفحة المستخدم (Users) لا في المنشورات. أضف حقلاً من نوع Number باسم post_credits واجعل قيمته الافتراضية 0.

هذا الحقل هو «المحفظة». كل ما يلي يقرأ منه أو يكتب فيه.

2. نموذج شراء الباقة

أنشئ نموذجاً جديداً من JetFormBuilder، وأضف إليه:

  • حقلاً مخفياً (Hidden Field) قيمته Current User ID، ليعرف النموذج أي مستخدم يحدّث.
  • حقلاً رقمياً باسم current_credits قيمته الافتراضية من Dynamic Tag مصدره User Meta والمفتاح post_credits، فيحمل الرصيد الحالي.
  • حقلاً محسوباً (Calculated Field) باسم new_credits يجمع الرصيد الحالي مع عدد منشورات الباقة.

المعادلة بصيغة JetFormBuilder للإشارة إلى الحقول:

%FIELD::current_credits% + 3

بعد ذلك فعّل بوابة الدفع من Gateways Settings، وأضف في إجراءات ما بعد الإرسال (Post Submit Actions) إجراء Update User: اربط الحقل المخفي بـ “User ID (will update this user)”، واربط new_credits بحقل الميتا post_credits.

أهم خطوة: من Edit Conditions & Events اجعل إجراء التحديث يعمل على الحدث GATEWAY.SUCCESS فقط. بدون ذلك قد يُضاف الرصيد قبل اكتمال الدفع.

ملاحظة: لبيع أكثر من باقة (3 منشورات و10 منشورات مثلاً) أنشئ نموذجاً لكل باقة، أو اجعل عدد المنشورات والسعر يعتمدان على حقل اختيار داخل النموذج نفسه.

3. نموذج النشر الذي يخصم الرصيد

في نموذج إضافة الإعلان أو الإدراج، استخدم إجراء Insert/Update Post لإنشاء المنشور في نوع المحتوى المخصص الخاص بك (إدراجات، وظائف، عقارات…)، واجعل حالته Pending حتى تراجعه قبل النشر.

ثم أضف الحقلين نفسيهما (current_credits والحقل المخفي)، وحقلاً محسوباً يطرح وحدة:

%FIELD::current_credits% - 1

وأضف إجراء Update User ثانياً يكتب الناتج في post_credits.

4. أخفِ النموذج عندما ينفد الرصيد

ضع نموذج النشر في الصفحة، وطبّق عليه الظهور الديناميكي (Dynamic Visibility) بشرط يخفيه إذا كانت قيمة post_credits للمستخدم الحالي أقل من 1 أو تساويها صفراً. وفي العنصر المجاور طبّق الشرط المعاكس لإظهار رسالة «رصيدك انتهى» وزر «اشترِ باقة جديدة».

في JetEngine: يمكنك عرض الرصيد نفسه في لوحة حساب المستخدم عبر Dynamic Field يقرأ post_credits، وهي من النصائح التي يؤكدها المصدر: المستخدم يجب أن يعرف رصيده دائماً.

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

الدفع من مصر والخليج: انتبه قبل الإطلاق

يذكر المصدر Stripe وPayPal، وهما البوابتان اللتان يوفر لهما JetFormBuilder إضافات رسمية. لكن Stripe غير متاح لأصحاب الحسابات في مصر، وPayPal يعمل في مصر بقيود على السحب.

  • لو جمهورك في مصر: تحقّق قبل البناء من طريقة تربط بها Paymob أو Fawry بالنموذج، سواء عبر إضافة طرف ثالث أو عبر بيع الباقة كمنتج في WooCommerce ثم تحديث الرصيد بعد الطلب.
  • لو جمهورك في الخليج: البوابات المحلية مثل Tap وMoyasar تحتاج سجلاً تجارياً محلياً؛ راجع وثائقها الرسمية لمعرفة طرق التكامل المتاحة.

أياً كان اختيارك، اختبر مسار الدفع كاملاً بمبلغ حقيقي صغير قبل فتح الموقع للجمهور.

نصائح تجعل النظام يبيع فعلاً

  • قدّم أكثر من باقة: باقة صغيرة للتجربة وأخرى أكبر بسعر أقل للمنشور الواحد؛ الباقة الأكبر ترفع متوسط قيمة الطلب.
  • اعرض الرصيد في كل مكان: في صفحة الحساب وبجوار نموذج النشر.
  • لا تلغِ المراجعة: الدفع يقلل السبام لكنه لا يمنعه، فأبقِ المنشورات الجديدة في حالة Pending.
  • اجعل إعادة الشحن بنقرة: عندما ينفد الرصيد، يجب أن يكون زر الشراء أول ما يراه المستخدم.
  • سعّر بالعملة المحلية: صاحب محل في القاهرة يفهم «500 جنيه لـ 3 إعلانات» أسرع من السعر بالدولار.

الأسئلة الشائعة

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

س: هل يجب أن يكون المستخدم مسجلاً؟
ج: نعم. الرصيد مخزَّن في حسابه، فلا بد أن يسجّل الدخول قبل الشراء والنشر. أضف نموذج تسجيل قبل صفحة الشراء.

س: هل يعمل مع أنواع المحتوى المخصصة؟
ج: نعم، أي نوع محتوى أنشأته بـ JetEngine (إدراجات، وظائف، فعاليات) يمكن أن يستقبل المنشورات من نموذج الإرسال نفسه.

س: ما الفرق بين الدفع مقابل النشر والدفع لفتح محتوى؟
ج: الأول يبيع للمستخدم حق النشر بعدد محدد، والثاني يبيع للقارئ حق مشاهدة منشور مدفوع. لكل منهما شرح مستقل في وثائق JetFormBuilder.

الخلاصة

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

ابدأ بباقة واحدة وشوف الناس هتتفاعل إزاي، وبعدين زوّد الباقات. ولو عايز JetEngine نفسه من هنا احصل على JetEngine، ولو محتاج حد يبني معاك النظام كامل احجز جلسة احجز استشارة مجانية.

مراجع إضافية: Update User – JetFormBuilder، Calculation Formulas Guide – JetFormBuilder، How to Set Up a Pay-Per-Post Form in WordPress

مرجع المقال (بالإنجليزية): Tips to Build a System for Selling Publishing Credits in WordPress
المقال ده مش ترجمة حرفية: متكيّف للقارئ العربي ومضاف عليه سياق ووردبريس وElementor وJetEngine.

اترك تعليقاً