تخزين الطلبات عالي الأداء (High-Performance Order Storage - HPOS)

تخزين الطلبات عالي الأداء (HPOS) (المعروف سابقاً باسم جداول الطلبات المخصصة - Custom Order Tables) هو حل مصمم خصيصاً لاحتياجات التجارة الإلكترونية، حيث يوفر هيكل قاعدة بيانات صلباً وسهل الفهم.

يستخدم تصميم الإنشاء والقراءة والتحديث والحذف (CRUD) الخاص بوووكامرس لتخزين بيانات الطلبات في جداول مخصصة محسّنة لاستعلامات وووكامرس، مع تأثير ضئيل للغاية على أداء المتجر.

ما الجديد في تخزين الطلبات عالي الأداء؟

يؤدي إحضار HPOS إلى وووكامرس إلى تحسين ثلاث خصائص أساسية لمتاجر التجارة الإلكترونية:

  1. قابلية التوسع (Scalability)
    الارتفاع في عدد العملاء وطلباتهم يزيد الضغط على قاعدة بيانات متجرك، مما يجعل من الصعب التعامل مع طلبات العملاء وتقديم تجربة مستخدم سلسة. مع تخزين الطلبات عالي الأداء، تحصل على جداول مخصصة للبيانات مثل الطلبات وعناوين الطلبات، والفهارس المخصصة، مما يؤدي إلى تقليل عمليات القراءة/الكتابة وتقليل الجداول المشغولة. تمكن هذه الميزة متاجر التجارة الإلكترونية بجميع أشكالها وأحجامها من توسيع أعمالها بأقصى إمكاناتها، دون الحاجة إلى تدخل الخبراء.
  2. الموثوقية (Reliability)
    يجعل HPOS تطبيق واستعادة النسخ الاحتياطي المستهدف للبيانات أسهل. لم تعد بحاجة إلى القلق بشأن فقدان الطلبات أو أرقام المخزون أو معلومات العملاء بفضل النسخ الاحتياطي الموثوق في جداول الطلبات المخصصة هذه. كما أنه يسهل تنفيذ أقفال القراءة/الكتابة ويمنع سباق التنافس (race conditions).
  3. البساطة (Simplicity)
    لم تعد بحاجة إلى المرور عبر قاعدة بيانات ضخمة واحدة لتحديد مكان البيانات الأساسية وإدخالات وووكامرس. مع HPOS، يمكنك تصفح الجداول المنفصلة والإدخالات السهل التعامل معها، المستقلة عن جدول _posts، للعثور على البيانات أو فهم هيكل الجدول. كما يتيح لك تطوير إضافات جديدة، وتنفيذ تصميمات للمتاجر والمنتجات، وتعديل وووكامرس بمزيد من المرونة.

خلفية (Background)

قبل الإصدار 8.2، اعتمد وووكامرس على هياكل جداول _post و_postmeta لتخزين معلومات الطلب.

قدم HPOS جداول مخصصة للبيانات مثل الطلبات وعناوين الطلبات والفهارس المخصصة. وينتج عن ذلك عمليات قراءة/كتابة أقل وجداول مشغولة أقل. تتيح هذه الميزة لمتاجر التجارة الإلكترونية بجميع أشكالها وأحجامها التوسع لأقصى إمكاناتها.

يتم مزامنة بيانات الطلب من جدولَي _posts و_postmeta إلى أربعة جداول مخصصة للطلبات:

  • _wc_orders
  • _wc_order_addresses
  • _wc_order_operational_data
  • _wc_orders_meta

كيفية تفعيل تخزين الطلبات عالي الأداء

ملاحظة (Note):

قبل تفعيل تخزين الطلبات عالي الأداء، تأكد من أن أي إضافات على موقعك تستخدم أنواع المنشورات المخصصة (مثل Woo Subscriptions، وWooCommerce Bookings، إلخ) مفعلة. قد يؤدي تعطيل هذه الإضافات قبل نقل بيانات الطلب إلى HPOS إلى تناقضات في البيانات. تعرف على المزيد حول التعامل مع أنواع المنشورات المخصصة أثناء ترحيل HPOS.

يتم تفعيل HPOS افتراضياً لـ التثبيتات الجديدة من وووكامرس 8.2 فصاعداً. يمكن للمتاجر الموجودة الانتقال من تخزين منشورات ووردبريس إلى تخزين الطلبات عالي الأداء باتباع الخطوات أدناه.

لتفعيل HPOS، ستحتاج المتاجر الحالية أولاً إلى مزامنة جدولَي المنشورات والطلبات:

  1. في لوحة تحكم ووردبريس، انتقل إلى WooCommerce > Settings > Advanced > Features
  2. حدد خانة الاختيار Enable compatibility mode (synchronizes orders to the posts table) (تفعيل وضع التوافق - مزامنة الطلبات إلى جدول المنشورات).
  3. بمجرد تفعيل هذا الإعداد، ستتم جدولة الإجراءات في الخلفية.
    • يتحقق إجراء wc_schedule_pending_batch_process مما إذا كانت هناك طلبات بحاجة إلى إعادة تعبئة (backfill).
    • إذا وجدت، فإنه يجدول إجراءً آخر (wc_run_batch_process) لإعادة تعبئة هذه الطلبات إلى تخزين المنشورات.
    • يمكنك إما انتظار تشغيل هذه الإجراءات بمفردها (والتي لن تستغرق وقتاً طويلاً)، أو الانتقال إلى WooCommerce > Status > Scheduled Actions، والعثور على الإجراءات، والنقر على رابط Run أسفل اسم الإجراء (الذي يظهر عند تمرير مؤشر الفأرة فوق الاسم).
    • سيقوم هذا الإجراء بإعادة تعبئة 25 طلبًا في المرة الواحدة. إذا كان هناك المزيد من الطلبات المراد مزامنتها، فسيتم جدولته إجراءات أخرى بمجرد اكتمال الإجراءات السابقة.
  4. بعد مزامنة كلا الجدولين بنجاح، يمكنك تحديد خيار التبديل إلى HPOS.
    • من المستحسن الحفاظ على وضع التوافق لفترة من الوقت لضمان انتقالة سلسة. في حال حدوث أي مشاكل، يمكن العودة إلى جدول _posts فوراً.
لقطة توضح إعدادات وضع التوافق لتخزين بيانات الطلبات

بدلاً من ذلك، يمكنك أيضاً استخدام أمر واجهة سطر الأوامر (CLI) wp wc cot sync لنسخ الطلبات من جدول _posts إلى جداول HPOS. سيتعرف هذا الأمر تلقائياً على الجدول المناسب لنقل البيانات بناءً على إعداد الجدول المعتمد.

ملاحظة (Note): تؤدي إيقاف وتشغيل إعداد Enable compatibility mode (synchronizes orders to the posts table) إلى جدولة عملية إعادة التعبئة مرة أخرى إذا لزم الأمر.

تخزين بيانات الطلب (Order data storage)

يمكنك التبديل بحرية بين مستودعات البيانات لمزامنة البيانات بين الجداول.

  • إذا اخترت خيار WordPress posts storage (legacy) (تخزين منشورات ووردبريس - القديم)، فسيوفر النظام بيانات الطلب داخل جدولَي _posts و_postmeta. ولا يتم استخدام جداول الطلبات في هذه الحالة.
  • إذا اخترت خيار High-performance order storage (recommended) (تخزين الطلبات عالي الأداء - الموصى به)، فسيوفر النظام بيانات الطلب داخل جداول طلبات وووكامرس الجديدة.
  • إذا اخترت خيار WordPress posts storage (legacy) وحددت خانة الاختيار Enable compatibility mode، فسقوم النظام بمزامنة بيانات الطلب بين جداول _posts و_postmeta وجداول طلبات وووكامرس.

المزامنة (Synchronization)

عند تحديد خياري High-performance order storage (recommended) وcompatibility mode معا، يقوم وووكامرس بتعبئة جداول HPOS بالبيانات من جدولَي _posts و_postmeta. تعرف على المزيد حول المزامنة بين الجداول المختلفة.

التعامل مع أنواع المنشورات المخصصة أثناء ترحيل HPOS

قبل تفعيل تخزين الطلبات عالي الأداء، تأكد من أن أي إضافات على موقعك تستخدم أنواع المنشورات المخصصة (مثل Woo Subscriptions، وWooCommerce Bookings، إلخ) مفعلة. تخزن هذه الإضافات البيانات في جدول منشورات ووردبريس. عند تفعيل HPOS، يتم نقل بيانات الطلب إلى جداول HPOS الجديدة المحسنة.

إذا تم إعادة تفعيل إضافة بعد الترحيل، فقد يؤدي ذلك إلى تناقضات في البيانات، حيث تظل البيانات الأصلية في جدول المنشورات ولا يتعرف عليها النظام، الذي يبحث الآن في جداول HPOS. لمعرفة كيفية منع مثل هذه المشكلات، أبقِ الإضافات التي تستخدم أنواع المنشورات المخصصة مفعلة عند تفعيل HPOS.

إذا كنت قد قمت بالفعل بتعطيل الإضافة وتفعيل HPOS، فاتبع هذه الخطوات لنقل بيانات الطلب بشكل صحيح:

  1. انتقل إلى WooCommerce > Settings > Advanced > Features.
  2. قم بتحويل High-performance order storage مرة أخرى إلى WordPress post storage، واترك المزامنة تكتمل.
  3. بعد ذلك، قم بالتبديل مرة أخرى إلى High-Performance Order Storage.

الإضافات غير المتوافقة (Incompatible extensions)

إذا كنت تستخدم إضافة غير متوافقة مع HPOS، فإن خيار التبديل يتم تعطيله في لوحة تحكم ووردبريس ضمن WooCommerce > Settings > Advanced > Features.

  • انقر على رابط View and manage لمراجعة قائمة الإضافات غير المتوافقة.
  • يمكنك أيضاً زيارة https://example.com/wp-admin/plugins.php?plugin_status=incompatible_with_feature&feature_id=custom_order_tables لمراجعة قائمة الإضافات غير المتوافقة (مع استبدال example.com بنطاق موقعك).

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

فهارس البحث النصي الكامل لـ HPOS

البحث النصي الكامل (FTS) للطلبات متاح في الوضع التجريبي بدءاً من وووكامرس 9.0. تحسن هذه الميزة إمكانات البحث، مما يتيح لك البحث بسرعة باستخدام عناوين الطلبات والمنتجات.

لتفعيل ميزة "HPOS Full text search indexes" التجريبية:

  1. انتقل إلى WooCommerce > Settings > Advanced > Features.
  2. تأكد من ضبط Order data storage على HPOS.
  3. ضمن قسم Experimental features، قم بتفعيل خيار HPOS Full-text search indexes.

ملاحظة (Note): تعمل هذه الميزة فقط عندما يكون تخزين بيانات الطلب مضبوطاً على HPOS.

تعطيل HPOS

إذا واجهتك مشاكل، أو إذا كنت بحاجة إلى الاستمرار في العمل مع إضافات ليست متوافقة بعد مع HPOS، فإننا نوصي مؤقتاً بتحويل إعداد Order data storage مرة أخرى إلى WordPress posts storage (legacy).

ل القيام بذلك، انتقل إلى WooCommerce > Settings > Advanced > Features وتأكد من تفعيل compatibility mode. إذا لم يكن مففعلاً بالفعل، فقد تحتاج إلى الانتظار ريثما تتم مزامنة بيانات الطلب عبر مستودعات البيانات.

بمجرد اكتمال المزامنة، حدد خيار WordPress posts storage (legacy) كخيارك المفضل؛ يمكنك أيضاً تعطيل وضع التوافق في هذه المرحلة. بمجرد أن تكون مستعداً لإعادة تفعيل HPOS، ما عليك سوى اتباع الإرشادات المنشورة في بداية هذا المستند. أخيراً، تذكر حفظ هذه الصفحة بين التغييرات!

وكما ذكرنا سابقاً، نوصي بشدة أيضاً بالتواصل مع فرق الدعم لأي إضافات غير متوافقة حتى يتمكنوا من اتخاذ الإجراءات التصحيحية.

التحديث للمطورين (Upgrading for developers)

إذا كنت أنت أو فريقك بحاجة إلى تحديث الكود المخصص لمتجرك، أو الإضافات، أو أي شيء متعلق بـ HPOS، تحقق من دليل وصفات التحديث (Upgrade Recipe Book) للعثور على جميع التفاصيل التقنية.

الأسئلة الشائعة (FAQs)

لدى متجر حالي ولكني لا أريد تفعيل HPOS. هل يجب علي ذلك؟

لا مشكلة! بينما نشجع الجميع على التبديل إلى HPOS للاستمتاع بالمزايا الكاملة لتجربة دفع أسرع لعملائك، فإننا نتفهم أن ليس الجميع يرغبون في تجربتها على الفور. الميزة اختيارية تماماً (opt-in) وستتمكن من التبديل في أي وقت.

إضافتي المفضلة غير متوافقة مع HPOS؛ ماذا يجب أن أفعل؟

لقد قمنا بت comunicating بفاعلية بالتغييرات القادمة لـ HPOS مع مجتمع المطورين لدينا. لدينا عدة مقالات مدونة، وأدلة حول كيفية تحديث الإضافات في GitHub، والتوثيق الكامل. على الرغم من أفضل جهودنا لتشجيع مطوري الإضافات على التبديل، إلا أن بعض المطورين قد لا يستوعبون HPOS. إذا كانت إحدى إضافاتك غير متوافقة، فنحن نوصي بشدة بالتواصل مع فريق دعم المطور المعني والطلب منهم إجراء التحديث. ستستمر في القدرة على استخدام الإضافة بدون HPOS إذا كانت مثبتة لديك بالفعل.

هل يمكن للشركات الصغيرة استخدام HPOS أم أنها مخصصة للشركات الكبيرة فقط؟

ستستفيد الشركات ذات جميع الأحجام من تخزين الطلبات عالي الأداء.

لدي متجر عالي الحجم على وووكامرس. كيف يؤثر ذلك على متجري؟

لن يتم ترحيل المتاجر الحالية إلى HPOS تلقائياً. الميزة اختيارية بالكامل (opt-in). يمكنك تفعيل HPOS باتباع الخطوات المذكورة أعلاه.

هل هناك أي متطلبات استضافة محددة أو قيود لاستخدام HPOS؟

لا توجد قيود على الاستضافة. أي مستضيف قادر على تشغيل ووردبريس ووووكامرس يجب ألا تواجهه مشكلة في تشغيل HPOS. يجب أن يؤدي هذا حتى إلى زيادة الأداء بطرق متعددة بعد تفعيله. تعرف على المزيد حول متطلبات الخادم لوووكامرس.

لمزيد من الرؤى التقنية، نظرة على الأسئلة الشائعة لمدونة المطورين.

الأسئلة والدعم (Questions and support)

هل لا تزال لديك أسئلة وتحتاج إلى مساعدة؟

تتعلق هذه الوثائق بإضافة وووكامرس المجانية الأساسية (core WooCommerce plugin)، والتي يتم تقديم الدعم لها في منتديات المجتمع الخاصة بنا على WordPress.org. من خلال البحث في هذا المنتدى، ستجد غالباً أن سؤالك قد تم طرحه والإجابة عليه من قبل.

إذا لم تقم بإنشاء حساب على WordPress.org لاستخدام المنتديات، إليك الطريقة (here’s how).

هل كانت المقالة مفيدة ؟ 0 أعضاء وجدوا هذه المقالة مفيدة (0 التصويتات)