تعارضات المكونات الإضافية
تعتبر تعارضات المكونات الإضافية واحدة من أكثر الأسباب شيوعًا للمشكلات المتعلقة بـ WCPOS. عندما تتداخل المكونات الإضافية الأخرى في WordPress مع وظائف WooCommerce أو WCPOS، قد تواجه انهيارات أو مشاكل في الأداء أو سلوك غير متوقع.
علامات تعارضات المكونات الإضافية
قد يكون لديك تعارض في المكونات الإضافية إذا واجهت:
- أخطاء قاتلة - "حدث خطأ حرج في هذا الموقع"
- مشاكل في الأداء - تحميل ببطء، انتهاء المهلة، أو تحميل عالٍ على الخادم
- مشاكل في الوظائف - ميزات لا تعمل كما هو متوقع
- مشاكل مزامنة البيانات - المنتجات أو الطلبات أو العملاء لا تتزامن بشكل صحيح
- مشاكل بوابة الدفع - فشل في عملية الدفع أو أخطاء في معالجة الدفع
قبل أن تبدأ: استخدم موقعاً لتجريب
لا تقم باستكشاف تعارضات المكونات الإضافية على موقعك الحي. استخدم دائمًا بيئة تجريبية لتجنب تعطيل عمليات عملك.
ما هو الموقع التجريبي؟
الموقع التجريبي هو نسخة مطابقة من موقعك الحي حيث يمكنك اختبار التغييرات بأمان دون التأثير على عملائك. معظم مزودي خدمة الاستضافة الحديثة يقدمون بيئات تجريبية كميزة قياسية.
إذا لم يقدم موفر الاستضافة لديك موقعًا تجريبيًا
إذا لم يقدم مزود الاستضافة لديك مواقع تجريبية، فكر في التحول إلى مضيف يقدم ذلك. هذه ميزة قياسية في الوقت الحاضر وهي أساسية لـ:
- اختبار المكونات الإضافية/القوالب بأمان
- تحديثات WordPress
- استكشاف الأخطاء
- العمل على التطوير
موفرو الاستضافة الموصى بهم مع التجريب:
- WP Engine
- SiteGround
- Kinsta
- Cloudways
- العديد من الآخرين
الخطوة 1: تحقق من الأخطاء القاتلة
إذا كنت تواجه انهيارات أو أخطاء حاسمة، ابدأ بفحص سجلات الأخطاء:
- تحقق من سجلات WCPOS - افتح شاشة السجلات في WCPOS لأي رسائل خطأ
- تحقق من سجلات الأخطاء القاتلة - اتبع دليل استكشاف الأخطاء في الأخطاء الحرجة للعثور على رسائل الخطأ المفصلة
- دوّن تفاصيل الخطأ - ابحث عن أسماء المكونات الإضافية أو مسارات الملفات المذكورة في الخطأ
إذا وجدت خطأً حرجًا يذكر مكونًا إضافيًا معينًا، فمن المحتمل أن يكون هو السبب. يمكنك تعطيل ذلك المكون الإضافي واختبار ما إذا كانت المشكلة قد حُلت.
الخطوة 2: طريقة استبعاد المكونات الإضافية
إذا لم تكن هناك أخطاء قاتلة في السجلات، أو كنت ترغب في تحديد تعارضات مرتبطة بالأداء، استخدم هذا النهج المنهجي:
2.1 إنشاء خط الأساس
- الوصول إلى موقعك التجريبي
- اختبر الوظيفة المشكلة - دوّن بالضبط ما لا يعمل أو ما هو بطيء
- سجل مقاييس الأداء - إذا كانت هناك مشكلة في الأداء، دوّن أوقات التنفيذ من السجلات
2.2 تعطيل جميع المكونات الإضافية (باستثناء الأساسية)
احتفظ بهذه المكونات الإضافية نشطة:
- WooCommerce
- WCPOS
- WCPOS Pro (إذا كان لديك)
عطل كل شيء آخر:
- انتقل إلى
WP Admin > Plugins - حدد جميع المكونات الإضافية الأخرى
- اختر "تعطيل" من قائمة الإجراءات الجماعية
- انقر على "تطبيق"
2.3 اختبار المشكلة
- امسح أي ذاكرات تخزين مؤقت - إذا كنت تستخدم مكونات إضافية للتخزين المؤقت، قم بمسح جميع الذاكرات
- اختبر الوظيفة المشكلة - هل تعمل الآن؟
- تحقق من الأداء - هل تحسنت أوقات التنفيذ؟
إذا تم حل المشكلة: لديك تعارض في المكونات الإضافية. انتقل إلى الخطوة 2.4.
إذا استمرت المشكلة: فمن المحتمل أن تكون المشكلة ليست تعارضًا في المكونات الإضافية. ضع في اعتبارك:
- مشاكل موارد الخادم (انظر أداء الخادم)
- تعارضات القوالب (انظر الخطوة 3)
- مشاكل في WordPress/WooCommerce الأساسية
2.4 تمكين المكونات الإضافية واحدة تلو الأخرى
الآن تحتاج إلى تحديد أي مكون إضافي يسبب التعارض:
- قم بتمكين مكون إضافي واحد - ابدأ بأكثرها أساسية أولاً
- اختبر الوظيفة - تحقق مما إذا كانت المشكلة تعود
- إذا لم تكن هناك مشكلة - قم بتمكين المكون الإضافي التالي واختبر مرة أخرى
- إذا عادت المشكلة - لقد وجدت المكون الإضافي المتعارض!
ترتيب أولوية المكونات الإضافية (قم بتمكينها بهذا الترتيب):
- المكونات الإضافية الأمنية - Wordfence، Sucuri، إلخ.
- مكونات تحسين محركات البحث - Yoast، RankMath، إلخ.
- مكونات الأداء - التخزين المؤقت، تحسين الأداء
- بوابات الدفع - Stripe، PayPal، إلخ.
- ملحقات WooCommerce الأخرى
- المكونات الإضافية العامة لـ WordPress
2.5 وثّق اكتشافاتك
عندما تحدد المكون الإضافي المتعارض:
- دوّن اسم المكون الإضافي وإصداره
- وثّق المشكلة المحددة التي يسببها
- تحقق مما إذا كانت هناك نسخة محدثة متاحة
- ابحث عن مكونات إضافية بديلة توفر وظائف مشابهة
الخطوة 3: تحقق من تعارضات القوالب
بينما نادراً ما تؤثر القوالب على WCPOS (لأنها تستخدم واجهتها الخاصة)، يمكن أن تسبب أحيانًا مشاكل مع:
- عمليات الدفع (إذا كنت تستخدم بوابة الدفع عبر الإنترنت)
- وظائف منطقة الإدارة
- استجابات API
اختبر باستخدام قالب افتراضي
- على موقعك التجريبي، قم بالتبديل إلى قالب WordPress افتراضي:
- Twenty Twenty-Four
- Twenty Twenty-Three
- Twenty Twenty-Two
- اختبر الوظيفة المشكلة
- إذا تم حل المشكلة - لديك تعارض في القالب
نادراً ما تسبب القوالب مشكلات في WCPOS مقارنة بالمكونات الإضافية. تعمل واجهة POS بشكل مستقل عن القالب الخاص بك. ومع ذلك، يمكن أن تؤثر القوالب على:
- صفحات الدفع في WooCommerce
- وظائف إدارة WordPress
- استجابات REST API
الخطوة 4: حل تعارضات المكونات الإضافية
بمجرد تحديد المكون الإضافي المتعارض، لديك عدة خيارات:
الخيار 1: تحديث المكون الإضافي
- تحقق من التحديثات - قد يتم إصلاح التعارض في إصدار أحدث
- قم بتحديث المكون الإضافي على موقعك التجريبي أولاً
- اختبر بدقة قبل التحديث على الموقع الحي
الخيار 2: ابحث عن بديل
- ابحث عن مكونات إضافية بديلة توفر نفس الوظيفة
- اختبر البدائل على موقعك التجريبي
- نقل الإعدادات إذا كنت تحوّل المكونات الإضافية
الخيار 3: الاتصال بمطور المكون الإضافي
- قم بإبلاغ عن التعارض لمطور المكون الإضافي
- قدم معلومات مفصلة:
- إصدارات المكونات الإضافية المعنية
- إصدارات WordPress وWooCommerce
- رسائل الخطأ المحددة أو السلوك
- خطوات لإعادة إنتاج المشكلة
الخيار 4: حل مخصص
بالنسبة للمكونات الإضافية الأساسية التي لا يمكن استبدالها:
- اتصل بمطور WordPress لإنشاء حل مخصص
- فكر في استخدام هوكات خاصة بالمكون الإضافي لتعطيل الوظائف المتعارضة
- استخدم المنطق الشرطي لتعطيل المكون الإضافي على الصفحات المتعلقة بـ POS
أنواع المكونات الإضافية المتعارضة الشائعة
فئات المكونات الإضافية عالية المخاطر
المكونات الإضافية الأمنية:
- يمكن أن تحظر طلبات API
- قد تتداخل مع المصادقة
- غالبًا ما تكون لديها قواعد جدار ناري عدوانية
المكونات الإضافية للتخزين المؤقت:
- يمكن أن تخزن استجابات API بشكل غير مناسب
- قد تتداخل مع البيانات في الوقت الحقيقي
- يمكن أن تسبب مشاكل البيانات القديمة
المكونات الإضافية لتحسين محركات البحث:
- يمكن أن تبطئ المكونات الثقيلة منطقة الإدارة
- قد تضيف استعلامات قاعدة بيانات غير ضرورية
- يمكن أن تتداخل مع استجابات REST API
منشئي الصفحات:
- غالبًا ما تحمل نصوصًا ثقيلة في منطقة الإدارة
- يمكن أن تتعارض مع صفحات إدارة WooCommerce
- قد تتداخل مع عمليات الدفع
المكونات الإضافية لعضوية/تقييد الوصول:
- يمكن أن تحظر الوصول إلى API
- قد تؤثر على مصادقة المستخدم
- يمكن أن تقيد الوصول إلى الموارد المطلوبة
فئات المكونات الإضافية منخفضة المخاطر
نماذج الاتصال: عادة لا تتداخل مع WCPOS مكونات الشبكات الاجتماعية: نادراً ما تسبب تعارضات مكونات التحليلات: آمنة بشكل عام إلا إذا كانت ثقيلة جدًا مكونات المحتوى الأساسية: متوافقة عادة
تعارضات المكونات الإضافية المعروفة
من المعروف أن المكونات الإضافية أدناه تتداخل مع WCPOS. وقد تم بالفعل إصلاح العديد من المشكلات تلقائيًا في إصدارات WCPOS الأخيرة — التحديث إلى أحدث إصدار يحل تلك المشكلات دون أي تكوين.
الخيط المشترك: يعتمد WCPOS على WooCommerce REST API ويعرض بعض التدفقات (تسجيل الدخول، الدفع، الإيصالات) في إطارات iframe. الإصلاح المعتاد هو استبعاد نقاط نهاية/عناوين نقطة البيع (/wp-json/wcpos/ و/wp-json/wc/v3/ ومسار /pos/) من المكون الإضافي الآخر — وليس تعطيله بالكامل.
مكونات الأمان وتسجيل الدخول
هذه هي المصدر الأكثر شيوعًا للتعارضات، خاصةً لتسجيل الدخول من تطبيق سطح المكتب/الجوال.
| المكون الإضافي | العرَض | الإصلاح |
|---|---|---|
| Wordfence | يحظر جدار الحماية REST API؛ لا يُعرض حقل رمز المصادقة الثنائية في إطار iframe لتسجيل الدخول؛ قد تحظر سياسة CSP المقيِّدة أصول نقطة البيع | أضف /wp-json/wcpos/ و/wp-json/wc/v3/ إلى القائمة البيضاء في جدار الحماية. للمصادقة الثنائية: عطّلها مؤقتًا لمستخدمي نقطة البيع. تُزال سياسة CSP تلقائيًا في الإصدار v1.9.0+ |
| Really Simple Security | يحظر الوصول إلى API / يفرض عمليات إعادة توجيه | عطّل أي قيود على REST API في إعدادات Advanced الخاصة بالمكون الإضافي |
| WPS Hide Login | عنوان تسجيل الدخول المخصّص يكسر إطار iframe لتسجيل الدخول في التطبيق | استخدم عنوان تسجيل الدخول القياسي /wp-admin/ للوصول إلى نقطة البيع |
| iThemes / Solid Security | يحظر REST API أو يُطلق حظرًا بسبب القوة الغاشمة من استدعاءات نقطة البيع | أضف نقاط نهاية نقطة البيع وعنوان IP الخاص بالخادم فقط إلى القائمة البيضاء — تجنّب قواعد IP الشاملة |
| Sucuri | يحظر جدار حماية تطبيق الويب (WAF) طلبات API | أضف نقاط نهاية REST API إلى القائمة البيضاء في لوحة تحكّم Sucuri |
| Security Optimizer | يحظر تسجيل دخول المسؤول إلى نقطة البيع ("use customize login URL") | سجّل الدخول إلى WP Admin عبر العنوان المخصّص أولًا، ثم انتقل إلى /pos |
| Force Login (وما شابهها من مكونات مصادقة REST) | يُعيد /wp-json/ الرمز 401/403؛ أبلغت التطبيقات الأقدم عن "Site does not seem to be a WordPress site" | اسمح بالوصول دون مصادقة إلى نقاط نهاية نقطة البيع، أو عطّله أثناء الاتصال الأولي. تُظهر تطبيقات v1.x الآن رسالة الخطأ الحقيقية |
| LoginPress | يفرض تسجيل الدخول بالبريد الإلكتروني؛ يكسر تسجيل دخول نقطة البيع متعدد المستخدمين | اسمح بتسجيل الدخول باسم المستخدم، أو عطّله للوصول إلى نقطة البيع |
| JWT Authentication plugins | الرمز 403 على جميع طلبات API لنقطة البيع بعد التفعيل (قد ينجح تسجيل الدخول، ويفشل كل شيء آخر) | أُصلح تلقائيًا في الإصدار v1.8.x+. في الإصدارات الأقدم، عطّل مكون JWT أو استبعد نقاط نهاية نقطة البيع |
| Captcha / reCAPTCHA | حلقة تسجيل دخول في تطبيق سطح المكتب (لا يمكن عرض captcha في إطار iframe) | عطّل captcha لعنوان تسجيل الدخول إلى نقطة البيع |
| Defender Pro | يحظر رأس X-Frame-Options جميع إطارات iframe لنقطة البيع (تسجيل الدخول، الدفع، الإيصالات) | أضف استثناءً خاصًا بنقطة البيع لـ /pos/ بدلًا من تعطيل X-Frame-Options على مستوى الموقع بأكمله |
| Jetpack CRM Client Portal | يكسر تسجيل الدخول إلى نقطة البيع بالكامل | عطّل امتداد Client Portal فقط |
مكونات الأداء والتخزين المؤقت وتحسين الأداء
| المكون الإضافي | العرَض | الإصلاح |
|---|---|---|
| WP Rocket, Autoptimize, Hummingbird, Smush | تأجيل/تصغير JS يكسر الدفع وStripe Terminal | استبعد عناوين /pos/ من تحسين JS |
| LiteSpeed Cache | حلقة إعادة تحميل مستمرة عند الدفع في تطبيق سطح المكتب؛ سياسة CSP مقيِّدة | حدّث WCPOS، امسح ذاكرة التخزين المؤقت، استبعد صفحات نقطة البيع من التخزين المؤقت. تُزال سياسة CSP تلقائيًا في الإصدار v1.9.0+ |
| Image Prioritizer | يُغرِق رأس HTTP Link، مما يكسر اكتشاف REST API؛ يُظهر تطبيق سطح المكتب "does not appear to be a WordPress site" | عطّل المكون الإضافي |
منشئو الصفحات وحاقنو الواجهة الأمامية
| المكون الإضافي | العرَض | الإصلاح |
|---|---|---|
| Elementor | يكسر elementor-frontend.js أكورديون الدفع داخل إطار iframe لنقطة البيع — لا تتوسّع طرق الدفع | استبعد صفحات نقطة البيع من تحميل سكريبت Elementor |
| Omnisend / marketing plugins | تحقن سكريبتات في إطار iframe للدفع، مما يكسر التخطيط والمدفوعات | استخدم Checkout Settings في نقطة البيع لتعطيل السكريبتات غير الأساسية |
| MyStickyElements / Complianz | تحقن عناصر متراكبة (أزرار ثابتة، لافتات ملفات تعريف الارتباط) في إطار iframe للدفع | هيّئها لاستبعاد عناوين /pos/ |
ملحقات WooCommerce ومكونات إضافية أخرى
| المكون الإضافي | العرَض | الإصلاح |
|---|---|---|
| WooCommerce Subscriptions | تعارض سكريبت الترحيل أثناء الترقية من v1.7 إلى v1.8 | عطّل Subscriptions، فعّل POS Pro (دع الترحيل يعمل)، ثم أعد تفعيله |
| WP Activity Log | يسجّل كل إجراء في نقطة البيع → تضخّم postmeta → "only 10 products" | عطّله، أو استبعد أنواع منشورات نقطة البيع من التسجيل |
Jetpack / Astra / Xero (أي شيء يربط save_post) | صفوف بيانات وصفية مكرّرة عند كل استدعاء API لنقطة البيع (وصل أحد المتاجر إلى 36,867 صفًا على منتج واحد) | أُصلح تلقائيًا في الإصدار v1.8.12+ (المجاني) / v1.8.14+ (Pro) بترحيل تنظيف — فقط حدّث |
| Stripe Tax | غير متوافق مع الطلبات المُنشأة عبر REST API (الطريقة التي تنشئ بها نقطة البيع الطلبات) | لا حل بديل — غير متوافق |
| Mollie | قد يخفي طريقة BACS (التحويل المصرفي) من دفع نقطة البيع | حدّث Mollie إلى أحدث إصدار |
| CTX Feed | أخطاء 403 متقطعة في صفحة إعدادات نقطة البيع | عطّله للتأكيد؛ لا يوجد حل بديل معروف |
| Third-party barcode scanner plugins | تُفسد JSON الخاص بـ API الطلبات، مما يكسر إنشاء/عرض الطلبات | عطّلها؛ استخدم مسح الباركود المدمج في نقطة البيع |
| MailerLite (Signup Forms + WooCommerce) | خطأ 500 عند إنشاء طلب في نقطة البيع (نفاد الذاكرة) | عطّله للتأكيد، ثم تواصل مع MailerLite |
| The Courier Guy Shipping | يفشل إنشاء طلب نقطة البيع بخطأ في الخادم | ارجع إلى إصدار سابق، أو تواصل مع المطوّر |
| PixelYourSite / PixelMySite | خطأ فادح: call to member function is_type() on bool | عطّله مؤقتًا |
| Google Listings & Ads | تعارض في المحمّل التلقائي → خطأ حرج "Class WCPOS\…\Stores not found" | احذف جميع مكونات نقطة البيع وأعد تثبيت أحدث إصدار مستقل من Pro فقط |
ينبغي تفعيل بوابة Stripe Terminal فقط داخل إعدادات نقطة البيع، وليس أبدًا في WooCommerce > Settings > Payments. يؤدي تفعيلها عالميًا إلى ظهورها في دفع متجرك العام وتعطّل تدفّق الدفع عبر الإنترنت.
تعارضات على مستوى الخادم
| المصدر | العرَض | الإصلاح |
|---|---|---|
رؤوس CSP مخصّصة (.htaccess، أو Nginx، أو مكون أمان إضافي) | تعلق نقطة البيع على الشعار؛ يُحظر JS/CSS | تُزال تلقائيًا على صفحات نقطة البيع في الإصدار v1.9.0+. لسياسة CSP على مستوى الخادم، اسمح بـ cdn.jsdelivr.net في script-src/style-src، أو أضف استثناءً لـ /pos/ |
| GoDaddy Website Firewall | يحظر /wp-json/ ("Received 'undefined'") | اسمح بمسار العنوان /wp-json/ في جدار الحماية — راجع أداء الخادم |
نصائح الوقاية
الصيانة الدورية
- ابقِ البرامج المساعدة محدثة - استخدم دائمًا أحدث الإصدارات
- قم بإزالة المكونات الإضافية غير المستخدمة - لا تعطلها فقط، بل احذفها
- اختبر التحديثات على الموقع التجريبي قبل تطبيقها على الموقع الحي
- راقب الأداء بانتظام باستخدام مقاييس أداء الخادم
أفضل ممارسات اختيار المكونات الإضافية
- اختر مطورين موثوقين - تحقق من المراجعات وتكرار التحديث
- تجنب الوظائف المكررة - لا تقم بتثبيت عدة مكونات إضافية تقوم بنفس الشيء
- اقرأ معلومات التوافق - تحقق مما إذا كانت المكونات الإضافية تم اختبارها مع WooCommerce
- ابدأ مع الحد الأدنى من المكونات الإضافية - أضف الوظائف تدريجيًا حسب الحاجة
الحصول على المساعدة
إذا لم تكن قادرًا على حل تعارض المكونات الإضافية:
للمستخدمين المحترفين
يتلقى المستخدمون المحترفون دعمًا أولوية لحل تعارضات المكونات الإضافية. يمكن لفريقنا مساعدتك في تحديد وحل التعارضات لك.
دعم المجتمع
عند التواصل مع الدعم
يرجى تقديم:
- قائمة بالمكونات الإضافية النشطة مع الإصدارات
- إصدارات WordPress وWooCommerce
- وصف مفصل للمشكلة
- الخطوات التي جربتها بالفعل
- رسائل الخطأ من السجلات
- مقاييس أداء الخادم إذا كانت ذات صلة