تعطل عملية الدفع في WooCommerce من أكثر المشكلات التي تؤثر مباشرة على أرباح المتاجر الإلكترونية، خاصة عند توقف العملية بعد الضغط على زر “إتمام الدفع” أو أثناء الانتقال إلى بوابة الدفع. المشكلة قد تكون بسيطة مرتبطة بضبط الإعدادات، وقد تكون معقدة ناتجة عن تعارض إضافات أو ضعف في إعدادات الخادم.
في هذا الدليل التقني سنبدأ بالحلول البسيطة أولًا كمطور ووردبريس، ثم ننتقل للحلول المتقدمة والخاصة بالخادم.
أسباب مشكلة عدم اكتمال الدفع في WooCommerce
- إعدادات بوابة الدفع غير مكتملة مثل مفاتيح API أو Webhook.
- تعارض بين إضافات WooCommerce أو إضافات الكاش مثل WP Rocket.
- فقدان جلسات WooCommerce بسبب إعدادات Cookies أو Sessions أو Cache.
- صفحة الدفع غير صحيحة أو غير مرتبطة في إعدادات WooCommerce.
- مشاكل SSL أو عدم توافق HTTP/HTTPS مما يؤدي لإلغاء الجلسة.
- إعدادات خادم ضعيفة مثل memory_limit أو max_execution_time.
- خطأ في عمليات Ajax أثناء إرسال الطلب إلى الخادم.
أولًا: الحلول البسيطة والسريعة للمشكلة
1. التحقق من إعدادات بوابة الدفع
اذهب إلى: WooCommerce → الإعدادات → المدفوعات
وتأكد من:
- تفعيل البوابة المطلوبة.
- إدخال مفاتيح API الصحيحة.
- تفعيل Webhook (خاصة في Stripe).
- اختبار الدفع في وضع التجربة Test Mode.
روابط مفيدة:
تهيئة PayPal —
تهيئة Stripe
2. تعطيل إضافات الكاش مؤقتًا
إضافات التخزين المؤقت مثل:
- WP Rocket
- W3 Total Cache
- LiteSpeed Cache
قد تمنع WooCommerce من حفظ بيانات الجلسة مما يؤدي لفشل عملية الدفع.
قم بتعطيلها مؤقتًا ثم اختبر الدفع.
اطّلع على دليل إصلاح مشاكل جلسات WooCommerce في:
حل مشكلة السلة تظهر فارغة
3. التأكد من إعداد صفحات WooCommerce
اذهب إلى:
WooCommerce → الإعدادات → متقدم
وتأكد من ربط الصفحات التالية:
- صفحة السلة
- صفحة الدفع
- صفحة حسابي
- صفحة إتمام الطلب
4. إصلاح مشاكل Sessions والكوكيز
- تأكد من تفعيل الكوكيز في متصفحك.
- تأكد من أن Cloudflare لا يقوم بتقييد الجلسات.
- في بعض الحالات، إضافة هذا السطر في wp-config.php يحل المشكلة:
define('COOKIE_DOMAIN', false);مقالات مرتبطة:
حل مشاكل أداء ووردبريس
5. التأكد من SSL وHTTPS
- تأكد أن صفحة الدفع تعمل على HTTPS بالكامل.
- تأكد من عدم وجود mixed content.
- في Cloudflare فعّل خيار Full SSL.
6. التبديل لقالب افتراضي لاختبار التعارض
استخدم قالب مثل Twenty Twenty-Three
إذا عمل الدفع بنجاح بعد التبديل، فهذا يعني أن المشكلة من القالب الحالي.
ثانيًا: الحلول المتقدمة للمطورين
1. فحص سجلات الأخطاء
قم بتفعيل وضع التصحيح:
define('WP_DEBUG', true); define('WP_DEBUG_LOG', true);ثم افحص الملف:
/wp-content/debug.logقد تجد رسائل مثل:
- خطأ في Ajax
- جلسة غير صالحة
- استعلام قاعدة بيانات فشل
2. فحص أخطاء الخادم
/var/log/nginx/error.log /var/log/apache2/error.logقد تكشف هذه السجلات عن:
- Timeout
- Memory exhausted
- Forbidden 403 أثناء الدفع
3. رفع حدود PHP
memory_limit = 512M max_execution_time = 300 max_input_vars = 5000يمكنك مراجعة دليلنا الشامل لرفع الذاكرة في ووردبريس:
حل مشكلة استنفاد الذاكرة
4. فحص Ajax الخاص بـ WooCommerce
تأكد أن الرابط التالي يعمل:
https://example.com/?wc-ajax=checkout- إذا ظهر خطأ 500 → يعني مشكلة برمجية.
- إذا ظهر 403 → حماية أو Firewall يمنع الطلب.
5. تعطيل حماية Cloudflare أو WAF
بعض إعدادات الحماية قد تمنع الطلبات الخاصة بالدفع.
فعّل وضع:
Development Mode
ثم اختبر من جديد.
6. إصلاح مشاكل قاعدة البيانات
OPTIMIZE TABLE wp_woocommerce_sessions; OPTIMIZE TABLE wp_options; OPTIMIZE TABLE wp_posts;نصائح لمنع تكرار المشكلة
- قم باختبار الدفع بعد كل تحديث.
- لا تستخدم إضافات كثيرة على صفحة الدفع.
- احرص على استخدام استضافة سريعة ومتوافقة مع WooCommerce.
الخلاصة
مشكلة عدم اكتمال الدفع في WooCommerce غالبًا تكون مرتبطة بجلسات WooCommerce أو إعدادات بوابة الدفع أو تعارض بين الإضافات.
بتطبيق الحلول البسيطة مثل فحص البوابة وتعطيل الكاش، ثم الانتقال للحلول المتقدمة مثل فحص Ajax ورفع حدود PHP، يمكنك حل المشكلة بشكل كامل.
