wp_ كبير جدًاwoocommerce_sessions في قاعدة البيانات [كيفية الإصلاح]

كما قلت في مقالات أخرى ، WooCommerce إنها وحدة قوية ومرنة بشكل متزايد وقادرة على التحول WordPress في متجر مثالي على الإنترنت لبدء الأعمال التجارية.

لمتجر على الإنترنت من الحجم modeالظريف، WooCommerce يمكن تشغيله أيضًا على "الاستضافة المشتركة" ، حيث يكون قادرًا على دعم 5.000 منتج / 100 طلب في اليوم بسهولة ، إذا كان الموضوع المستخدم لا يستهلك الكثير من الموارد ولا تسيء استخدام الوحدات الأخرى (المكونات الإضافية).

تحسين كود المصدر مظاهر الفسفور الابيض والوحدات النمطية (ملحقات WP) و تحسين قاعدة البيانات هناك أيضًا جانبان يجب أن نكون حذرين للغاية بشأنهما.

لقد لاحظت في ذلك اليوم وجود متجر على الإنترنت من الأحجام modeلقد بدا لاستهلاك الكثير من موارد ذاكرة الوصول العشوائي و CPU على خادم مخصص كريم - سخي. أدى هذا الاستهلاك المرتفع للموارد إلى زيادة "الحمل" على الخادم ووقت تحميل طويل لصفحات المتجر على الإنترنت.

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

لاحظت في قاعدة البيانات أن الجدول "wp_woocommerce_sessions"انه ضخم. كان لديها أكثر من 6 غيغابايت. حجم ضخم لجدول في قاعدة بيانات لا يتجاوز إجمالي حجمه 100 ميغابايت

ما هو wp_woocommerce_ الجلسات؟

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

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

لسوء الحظ ، لا يحدث دائمًا حذف هذه الجلسات ، وفي بعض الحالات ، تظل مخزنة بشكل دائم في wp_woocommerce_s ، مما يجعل هذا الجدول يصل إلى حجم كبير إلى حد ما.

كيفية حذف الجدول wp_woocommerce_sessions من SQL؟

1. الذهاب إلى لوحة المعلومات →  WooCommerce →  الحالة →  الأدوات  (التبويب).

2. قم بالتمرير لأسفل إلى الخيار "جلسات واضحة للعملاء". حذر! يعني حذف جلسات العملاء حذف جميع المنتجات التي يضعونها في عربة التسوق. إذا كان هناك عملاء لديهم منتجات في سلة التسوق أثناء حذف هذه الجلسات ، فسيختفون ولن يكتمل الطلب المحتمل عبر الإنترنت.

3. انقر فوق "مسح" وقم بتأكيد العملية.

في هذه اللحظة الجدول "wp_woocommerce_sessions "فارغة ، لذلك تم حذف جميع جلسات تسوق العملاء.

المشكلة بعيدة عن الحل. جدول SQL wp_woocommerce_ ستجمع الجلسات البيانات فيه مرة أخرى وبشكل افتراضي ستحصل على النسب مرة أخرى ، وهو أمر غير مرغوب فيه.

كيف يمكننا إيقاف تخزين جلسات العميل بشكل دائم في WooCommerce - wp_woocommerce_sessions?

لقد أوضحت أعلاه كيف أن الجدول "wp_woocommerce_sessions "من قاعدة البيانات ، ولكن المشكلة ستظهر مرة أخرى بعد أيام قليلة عندما تتجمع جلسات العميل مرة أخرى.

قبل WooCommerce 2.5 ، تم التقاط جلسات العميل من خلال ملفات تعريف الارتباط ، ليتم حفظها في الجدول لاحقًا WordPress "wp_options".
بالنسبة إلى المتاجر الكبيرة ، غالبًا ما تؤدي هذه الطريقة إلى حدوث كوارث. "Wp_options"كونه الجدول الحيوي ل WordPress، تُستخدم بواسطة الخيارات والإعدادات العامة. تحديد جلسات العميل المخزنة في ملفات wp_options لم تكن مهمة سهلة.
أداء WooCommerce لم يكونوا الأفضل ، وكانت قابلية التوسع بمرور الوقت نقطة حساسة.

مع إطلاق WooCommerce 2.5 في عام 2015 ، المطورين WooCommerce أدخلت نظامًا جديدًا للتعامل مع الجلسة والتخزين WooCommerceعلى أساس مدير جلسات WP. أدى هذا النظام إلى الظهور wp_woocommerce_sessions. جدول مخصص لجلسات العملاء ، والذي لا يتفاعل في قاعدة البيانات مع الجداول الأخرى. في حالة حدوث أخطاء كبيرة ، يجب أن تكون الخسائر ضئيلة.

من خلال ما لاحظته ، تم إطلاق المتاجر عبر الإنترنت من قبل WooCommerce 2.5 والتي تلقت تحديثات مستمرة بمرور الوقت ، لديها بعض المشاكل فيما يتعلق بالحذف التلقائي لجلسات العميل. من المرجح أنه خطأ ظهر في إصدار أحدث من WooCommerce 2.5 أو مكون إضافي WordPress / WooCommerce التي لم تواكب التحديثات.

في حالتي ، كان هناك تعارض مع وظيفة مضافة إلى الملف functions.php من الموضوع ، والتي يمنع الحذف التلقائي بعد وقت انتهاء صلاحية الجلسات من woocommerce_sessions.
إذا واجهت مثل هذه المشكلة ، يجب عليك التحقيق بعناية في جميع الأسباب المحتملة. يتعارض خطأ SQL وأذونات SQL و Cron Job مع المكونات الإضافية الأخرى وأخيراً وليس آخراً تحقق من التغييرات التي أجريتها في التعليمات البرمجية بمرور الوقت.

رأيت ذلك WooCommerce عروض مقابل 29 دولارًا فقط للمكوِّن الإضافي القادر على إدارة جلسات العملاء. "محو سلة التسوق والجلسات لـ WooCommerce". بالطبع ، بالإضافة إلى الحذف المجدول للجلسات ، تحتوي الوحدة على العديد من الأدوات التي يمكن أن تساعدك.

خيار أبسط الحذف المقرر لـ "woocommerce_sessions"على فترات ليوم واحد، متاح مع الكود التالي في functions.php:

// clean cart every day
if (!wp_next_scheduled('cron_wc_clean_cart')) {
    wp_schedule_event( time(), 'daily', 'cron_wc_clean_cart' );
}

add_action ( 'cron_wc_clean_cart', 'wc_clean_session_cart' );
function wc_clean_session_cart() {
    global  $wpdb;

    $wpdb->query( "TRUNCATE {$wpdb->prefix}woocommerce_sessions" );
    $wpdb->query( "DELETE FROM {$wpdb->usermeta} WHERE meta_key='_woocommerce_persistent_cart_" . get_current_blog_id() . "';" );
    wp_cache_flush();
}

اترك تعليقًا إذا كنت بحاجة إلى مساعدة أو لديك حل آخر.

شغوفة بالتكنولوجيا ، أكتب بسرور StealthSettings.com منذ عام 2006. لدي خبرة واسعة في أنظمة التشغيل: macOS, Windows سي Linuxبل أيضًا في لغات البرمجة ومنصات التدوين (WordPress) وللمتاجر عبر الإنترنت (WooCommerce، ماجنتو، بريستاشوب).

كيف » القرص & المأجورون » wp_ كبير جدًاwoocommerce_sessions في قاعدة البيانات [كيفية الإصلاح]

1 فكرت في "wp_ كبير جدًا"woocommerce_sessions in Database [How-To Fix] "

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

    رد
اترك تعليق