قالب بوابة الدفع
يقدم لك قالب بوابة الدفع نقطة انطلاق لبناء بوابة دفع خاصة فقط بنظام نقاط البيع. ينتج مكون WordPress عملي مع ملف PHP واحد يمكنك تثبيته وتخصيصه ليناسب احتياجاتك.
الميزات
رمز بسيط
ملف PHP واحد يحتوي فقط على الأساسيات - سهل القراءة والتعديل
خاص بنقاط البيع
معطل على الخروج عبر الويب بشكل افتراضي، مفعل من خلال إعدادات WCPOS
إعداد تلقائي
برنامج نصي يتولى جميع استبدالات العناصر النائبة لك
إصدارات GitHub
ادفع زيادة في الإصدار ويقوم GitHub Actions ببناء ملف ZIP قابل للتنزيل
البدء
استنساخ مستودع القالب
git clone https://github.com/wcpos/woocommerce-gateway-template.git
cd woocommerce-gateway-template
أو انقر على زر استخدم هذا القالب في مستودع GitHub لإنشاء نسخة خاصة بك.
تشغيل برنامج الإعداد
./create-gateway.sh
يسأل البرنامج النصي عن بعض التفاصيل - اسم بوابتك، وصف مختصر، واسم مستخدم GitHub الخاص بك - ثم يقوم بإنشاء مكون جاهز للاستخدام في دليل من اختيارك.
تثبيت المكون
لديك خياران:
الخيار أ - نسخ المجلد مباشرة (إذا كان لديك وصول للخادم):
انسخ مجلد البوابة الذي تم إنشاؤه إلى دليل موقعك wp-content/plugins/.
الخيار ب - ضغط وتحميل (أسهل لمعظم الأشخاص):
- قم بضغط المجلد الذي تم إنشاؤه إلى ملف
.zip - في WordPress، انتقل إلى المكونات > إضافة جديدة > تحميل البرنامج
- اختر ملف zip واضغط تثبيت الآن
تفعيل في WCPOS
- انتقل إلى WP Admin > WCPOS > الإعدادات > الخروج
- ابحث عن بوابتك الجديدة في القائمة وقم بتفعيلها
البوابة معطلة على الخروج العادي عبر الويب بشكل افتراضي. تتحكم WCPOS في البوابات التي تظهر في نقاط البيع من خلال إعداداتها الخاصة.
الإعداد اليدوي
إذا كنت تفضل عدم استخدام البرنامج النصي، يمكنك استبدال العناصر النائبة بنفسك. افتح كل ملف في محرر نصوص وابحث واستبدل ما يلي:
| العنصر النائب | ما يجب إدخاله | مثال |
|---|---|---|
{{GATEWAY_NAME}} | اسم عرض بوابتك | دفع نقدي |
{{GATEWAY_SLUG}} | مُعرف صالح لعنوان URL (حروف صغيرة، شرطات) | cash-payment |
{{GATEWAY_DESCRIPTION}} | وصف قصير للبوابة | قبول المدفوعات النقدية في WCPOS |
{{GATEWAY_DEFAULT_DESCRIPTION}} | نص يظهر للصراف عند الخروج | الدفع نقدًا عند نقطة البيع |
{{GITHUB_USERNAME}} | اسم مستخدم GitHub الخاص بك | kilbot |
{{REPO_NAME}} | اسم المستودع الخاص بك | cash-payment-gateway |
{{AUTHOR_NAME}} | اسمك | kilbot |
{{GATEWAY_ID}} | شريحة مع شرطات سفلية بدلاً من الشرطات | cash_payment |
{{GATEWAY_CLASS_NAME}} | كل كلمة بحرف كبير، مفصولة بشرطات سفلية | Cash_Payment |
{{GATEWAY_FUNCTION_PREFIX}} | نفس معرف البوابة | cash_payment |
ثم قم بإعادة تسمية wcpos-{{GATEWAY_SLUG}}.php لتتناسب مع شريحتك (على سبيل المثال، wcpos-cash-payment.php).
يشتق برنامج الإعداد GATEWAY_ID و GATEWAY_CLASS_NAME و GATEWAY_FUNCTION_PREFIX تلقائيًا من الاسم والشريحة، لذا تحتاج فقط إلى التفكير في هذه الأمور عند القيام بالإعداد اليدوي.
كيف يعمل
يقوم المكون الذي تم إنشاؤه بتسجيل فئة بوابة دفع WooCommerce. إليك الأشياء الرئيسية التي تحتاج لمعرفتها:
$this->enabled = 'no'- يتم إخفاء البوابة من الخروج عبر الويب. تقوم WCPOS بتفعيلها في نظام نقاط البيع بناءً على إعدادات نقاط البيع الخاصة بك.process_payment()- يستدعي$order->payment_complete()، والذي يحدد الطلب كمدفوع ويتعامل مع تقليل المخزون تلقائيًا.init_form_fields()- يحدد حقول العنوان والوصف التي تظهر في إعدادات WooCommerce.
تخصيص بوابتك
إضافة حقول الدفع
إذا كانت بوابتك تحتاج إلى إدخال من أمين الصندوق (على سبيل المثال، رقم مرجعي)، قم بتجاوز طريقة payment_fields():
public function payment_fields() {
if ( $this->description ) {
echo wpautop( wptexturize( $this->description ) );
}
woocommerce_form_field( 'my_gateway_reference', array(
'type' => 'text',
'label' => __( 'Reference Number', 'your-text-domain' ),
'required' => true,
) );
}
يمكنك بعد ذلك قراءة القيمة المقدمة في process_payment() عبر $_POST['my_gateway_reference']. تذكر أن تقوم بتطهير أي إدخال باستخدام sanitize_text_field().
تغيير سلوك الدفع
يحدد القالب الافتراضي الطلبات كمدفوعة على الفور. إذا كانت سيرتك الذاتية تتطلب الدفع لاحقًا (مثل فاتورة)، استبدل payment_complete() بتحديث الحالة:
public function process_payment( $order_id ) {
$order = wc_get_order( $order_id );
// Set to pending — the customer will pay later.
$order->update_status( 'pending', __( 'Awaiting payment', 'your-text-domain' ) );
// Stock must be reduced manually when not using payment_complete().
wc_reduce_stock_levels( $order_id );
return array(
'result' => 'success',
'redirect' => $this->get_return_url( $order ),
);
}
إجراء التغييرات والتحديثات
بعد تثبيت بوابتك، يمكنك الاستمرار في تعديل ملف المكون لضبط منطق الدفع. لتثبيت إصدار محدث:
- حرر
wcpos-your-slug.phpفي المجلد الذي تم إنشاؤه - قم بتحديث رقم
Version:في رأس المكون (على سبيل المثال، من0.1.0إلى0.2.0) - قم بضغط المجلد وتحميله مرة أخرى من خلال المكونات > إضافة جديدة > تحميل البرنامج، أو استبدل المجلد مباشرة في
wp-content/plugins/
سيسأل WordPress إذا كنت تريد استبدال المكون الحالي عند تحميل ملف zip بنفس اسم المكون - انقر على استبدال الحالي بالملف المرفوع للتحديث.
إصدارات تلقائية مع GitHub
إذا قمت بدفع بوابتك إلى مستودع GitHub، يتضمن القالب تدفق عمل GitHub Actions الذي ينشئ إصدارات تلقائيًا:
- قم بتحديث رقم
Version:في رأس المكون - قم بالتزام الدفع والدفع إلى فرع
main - يكتشف GitHub Actions تغيير الإصدار وينشئ إصدارًا جديدًا مع ملف ZIP قابل للتنزيل
يمكن للمستخدمين الآخرين بعد ذلك تحميل ملف ZIP من صفحة الإصدارات في مستودعك وتثبيته كما في أي مكون WordPress.
استكشاف الأخطاء وإصلاحها
البوابة لا تظهر في نظام نقاط البيع
- تحقق من أن المكون مفعل في WP Admin > المكونات
- انتقل إلى WP Admin > WCPOS > الإعدادات > الخروج وتأكد من تفعيل البوابة
- تحقق من أن WooCommerce مثبت ومفعل
البوابة تظهر على الخروج عبر الويب
- تأكد من تعيين
$this->enabled = 'no';في مُنشئ البوابة - تقوم WCPOS بتجاوز هذا الإعداد لطلبات نقاط البيع، لذلك يجب أن تظهر البوابة فقط في نقاط البيع
تبقى الطلبات في حالة 'المعالجة' بدلاً من 'الإنهاء'
- تقوم WooCommerce بتعيين حالة الطلب بناءً على أنواع المنتجات. تبقى الطلبات التي تحتوي على منتجات مادية في "المعالجة" - هذا سلوك عادي في WooCommerce. فقط الطلبات التي تحتوي على منتجات افتراضية أو قابلة للتنزيل يتم وضع علامة "مكتمل" تلقائيًا.
الموارد
- GitHub: woocommerce-gateway-template
- API بوابة دفع WooCommerce: وثائق WC_Payment_Gateway
بوابات أمثلة
تلك البوابات الموجودة تم بناؤها بنفس النهج وهي مراجع جيدة:
- الفاتورة عبر البريد الإلكتروني - ترسل بريدًا إلكترونيًا بالفاتورة حتى يتمكن العميل من الدفع لاحقًا
- الخروج عبر الويب - يعيد التوجيه إلى متجر الويب للدفع