تحميل أو دوران لا نهائي (Endless loading/spinner) في صفحة الدفع
إذا كان صفحة الدفع (checkout) في وووكامرس متوقفة عن التحميل، أو تعرض مؤشر دوران (spinner) لا نهائي، أو فشل ظهور قسم مراجعة الطلب، فهذا الدليل يساعدك في تحديد المشكلة وحلها. يقوم قسم "مراجعة الطلب" (order review) في صفحة الدفع بتحميل طرق الدفع وإجماليات الطلب باستخدام AJAX (طريقة تحميل محتوى الصفحة دون تحديث كامل للصفحة)، مما يعرض مؤشر تحميل لفقت. إذا حدث خطأ ما، فقد يفشل تحميل هذا القسم أو يظل مؤشر الدوران مستمراً إلى أجل غير مسمى.
ابدأ بالانتقال إلى WooCommerce > Status (الحالة) والبحث عن أي أخطاء مميزة. إذا رأيت أخطاء مدرجة هناك، فقم بمعالجتها أولاً. إذا كانت صفحة الحالة تبدو نظيفة، فراجع الأسباب الشائعة والحلول أدناه.
الأسباب المحتملة (Possible causes)
تعد الأسباب التالية هي الأكثر شيوعاً لتوقف صفحة الدفع عن التحميل:
- عدم تطابق عناوين URL لووردبريس والموقع مما يمنع طلبات AJAX من الاكتمال.
- أخطاء أو تعارضات جافا سكريبت (JavaScript) ناتجة عن القوالب أو الإضافات.
- استجابات AJAX غير صالحة تعيد HTML بدلاً من تنسيق البيانات المتوقع.
- رسائل البريد الإلكتروني الخاصة بالمعاملات تؤخر الدفع على الخوادم الأبطأ.
- حد ذاكرة ووردبريس غير كافٍ مما يتسبب في فشل الطلبات.
التحقق من تطابق إعدادات عنوان URL لووردبريس والموقع
لا تعمل طلبات AJAX عبر نطاقات (domains) مختلفة. إذا لم يتطابق عنوان ووردبريس (URL) وعنوان الموقع (URL)، ستفشل مكالمات AJAX في صفحة الدفع.
للتحقق من تطابق عناوين URL الخاصة بك، انتقل إلى Settings > General (الإعدادات > عام) في لوحة تحكم ووردبريس. تأكد من أن كل من حقلَي عنوان ووردبريس (URL) وعنوان الموقع (URL) يحتويان على نفس القيمة.
يجب أن يتطابق كلا حقلَي URL لكي يعمل AJAX بشكل صحيح.
لمزيد من التفاصيل، راجع وثائق ووردبريس حول تحديث عناوين ووردبريس والموقع.
حل أخطاء وتعارضات جافا سكريبت
يمكن للقوالب والإضافات إنشاء تعارضات في جافا سكريبت تمنع AJAX من الاكتمال في صفحة الدفع. للتحقق من وجود أخطاء، افتح وحدة تحكم المطور في متصفحك (اضغط F12 أو Ctrl+Shift+I في معظم المتصفحات) وانظر إلى تبويب Console بحثاً عن رسائل الخطأ الحمراء.
تُظهر وحدة تحكم مطور كروم أخطاء جافا سكريبت التي قد تؤثر على الدفع.
إذا رأيت أخطاء، فاتبع الدليل الخاص بـ اختبار تعارضات القوالب والإضافات لتحديد المصدر.
استجابة غير صالحة من مكالمة AJAX
عندما تعيد مكالمات AJAX محتوى غير متوقع، لا يمكن عرض قسم مراجعة الطلب بشكل صحيح. لتشخيص ذلك، افتح وحدة تحكم المطور في متصفحك، وحدد تبويب Network، وقم بالتصفية حسب XHR (XMLHttpRequest، والتي تعرض طلبات AJAX). انظر إلى الاستجابة للطلبات المتعلقة بالدفع. تنسيق الاستجابة المتوقع هو JSON.
إذا كانت الاستجابة HTML بدلاً من JSON، فقد يقوم ملف index.html في المجلد الرئيسي لتثبيت ووردبريس بتجاوز index.php. يمكن لبعض إضافات التخزين المؤقت (caching) أيضاً إلحاق HTML باستجابات JSON.
لحل مشكلة استجابة HTML، جرب أحد النهجين التاليين:
- قم بإزالة ملف
index.htmlمن المجلد الرئيسي لتثبيت ووردبريس. - قم بتعديل توجيه الفهارس (indexes directive) لتكوين الخادم لأولوية
index.phpعلىindex.html. - إذا كنت تستخدم إضافة تخزين مؤقت، قم بمسح التخزين المؤقت أو تعطيل الإضافة مؤقتاً للاختبار.
إذا رأيت استجابة بـ -1، فهذا يشير إلى فشل التحقق من الأمان الناجم عن nonce مخزن مؤقتاً. يؤدي مسح ذاكرة التخزين المؤقت للموقع وأي ذاكرة تخزين مؤقت على مستوى الخادم عادةً إلى حل هذه المشكلة.
يمكنك أيضاً التحقق من التعارضات عن طريق إيقاف تشغيل الإضافات الأخرى والتبديل إلى قالب ووردبريس افتراضي. غالباً ما يكشف هذا عن مصدر المشكلة.
تأجيل رسائل البريد الإلكتروني للمعاملات لمنع انتهاء مهلة الدفع
على بعض الخوادم، يمكن أن يؤدي إرسال رسائل البريد الإلكتروني المتعلقة بالدفع أثناء معالجة الطلب إلى إبطاء أو تعطيل استجابة AJAX. يمكنك تأجيل هذه الرسائل بحيث يتم إرسالها بعد اكتمال الطلب.
اطلب من المطور إضافة الفلتر التالي، أو استخدم إضافة تسمح بالدوال المخصصة، مثل إضافة Code Snippets:
ملاحظة (Note):
هذه وثيقة بمستوى المطورين (Developer level). إذا كنت غير معتاد على التعامل مع الكود وحل التعارضات المحتملة، فنوصي بالعمل مع شريك وكالة وووك (Woo Agency Partner) للمشاريع الأكبر، أو العثور على مطور وووكامرس على Codeable للتعديلات الأصغر. نحن غير قادرين على تقديم دعم للتعديلات المخصصة بموجب سياسة الدعم الخاصة بنا (Support Policy).
add_filter( 'woocommerce_defer_transactional_emails', '__return_true' );
أضف هذا الكود إلى ملف functions.php الخاص بقالبك الفرعي أو استخدم إضافة Code Snippets. لا تقم بإضافة كود مخصص مباشرة إلى ملف functions.php الخاص بالقالب الرئيسي، لأن تحديثات القالب ستستبدل تغييراتك.
حد ذاكرة ووردبريس (WordPress memory limit)
يمكن أن يتسبب حد ذاكرة ووردبريس غير الكافي في فشل طلبات AJAX أثناء الدفع. توصي وووكامرس بحد ذاكرة لا يقل عن 64 ميغابايت.
للتحقق من حد الذاكرة الحالي لديك، انتقل إلى WooCommerce > Status وابحث عن صف WP Memory Limit. إذا كان أقل من 64 ميغابايت، فاتبع الدليل الخاص بـ زيادة حد ذاكرة ووردبريس.
الأسئلة والدعم (Questions and support)
هل لا تزال لديك أسئلة وتحتاج إلى مساعدة؟
تتعلق هذه الوثائق بإضافة وووكامرس المجانية الأساسية (core WooCommerce plugin)، والتي يتم تقديم الدعم لها في منتديات المجتمع الخاصة بنا على WordPress.org. من خلال البحث في هذا المنتدى، ستجد غالباً أن سؤالك قد تم طرحه والإجابة عليه من قبل.
إذا لم تقم بإنشاء حساب على WordPress.org لاستخدام المنتديات، إليك الطريقة (here’s how).
- إذا كنت تبحث عن توسيع (extend) الوظائف الأساسية المعروضة هنا، فنحن نوصي بمراجعة الإضافات المتاحة في سوق وووكامرس (WooCommerce Marketplace).
- هل تحتاج إلى دعم متقدم مستمر أو تعديل مخصص (customization) مبني لوووكامرس؟ قم بتوظيف شريك وكالة وووك (Woo Agency Partner).
- هل أنت مطور (developer) تبني تكاملك أو إضافتك الخاصة بوووكامرس؟ تحقق من موارد المطورين (Developer Resources).