Veritabanında çok büyük wp_woocommerce_sessions [Nasıl Yapılır]

Diğer makalelerde de söylediğim gibi, WooCommerce giderek daha sağlam ve esnek bir modüldür, WordPress'i bir Yeni başlayan bir işletme için ideal çevrimiçi mağaza.

Mütevazı bir çevrimiçi mağaza için, WooCommerce "paylaşılan bir barındırma" üzerinde çalıştırılabilir ve kullanılan tema çok fazla kaynak tüketmiyorsa ve diğer modülleri (eklentiler) kötüye kullanmıyorsa, günde 5.000 ürünü / 100 siparişi kolayca destekleyebilir.

Kaynak kodu optimizasyonu WP Temaları, modüller (WP Eklentileri) ve veritabanı optimizasyonu ayrıca çok dikkatli olmamız gereken iki nokta var.

Geçen gün mütevazı bir çevrimiçi mağazanın başladığını fark ettim. adanmış bir sunucuda çok fazla RAM ve CPU kaynağı tüketmek cömert. Bu yüksek kaynak tüketimi, sunucuda artan bir "yük"e ve çevrimiçi mağaza sayfalarının uzun bir yükleme süresine yol açtı.

Bir web sunucusunda haksız yere yüksek bir yük olduğunu fark ettiğimizde, herhangi bir işlem yapmadan önce nedenleri dikkatlice araştırmak iyi olur.

Veritabanında tablonun "wp_woocommerce_sessions"Çok büyük. 6 GB'ın üzerindeydi. Normalde toplamda 100 MB'ı aşmayan bir veritabanındaki bir tablo için çok büyük bir hacim.

wp_woocommerce_sessions nedir?

Adından da tahmin edebileceğimiz gibi masa"wp_woocommerce_sessions”PHP oturumları içerir (PHP Oturumları).
Bu oturumlar, site kullanıcılarının (veya web robotlarının) eylemleridir ve çoğu zaman çerezler aracılığıyla veritabanına ulaşırlar. wp_woocommerce_sessions'da, kullanıcıların alışveriş sepetine koyduğu ürünler, kuponlar, nakliye ücretleri, müşteri verileri ve ürün sipariş süreciyle ilgili diğer birçok bilgi hakkında bilgi depolanır.

Bu oturumlar, kullanıcının siteye kayıtlı olup olmamasına bakılmaksızın oluşturulur ve normalde süresi dolmalı ve bir süre sonra otomatik olarak silinmelidir.

Ne yazık ki, bu oturumların silinmesi ve bazı durumlarda kalıcı olarak wp_woocommerce_sessions içinde saklanmaları her zaman böyle değildir, bu da bu tabloyu oldukça büyük kılmaktadır.

tablo nasıl silinir wp_woocommerce_sessions SQL'den mi?

1. gitmek Kullanıcı Paneli →  WooCommerce →  Durum →  Araçlar (sekme).

2. Seçenek için aşağı kaydırın "Müşteri oturumlarını temizle". Dikkatli! Müşteri oturumlarını silmek, alışveriş sepetine koydukları tüm ürünleri silmek anlamına gelir. Bu oturumlar silinirken sepette ürün bulunan müşteriler varsa bunlar kaybolacak ve olası online sipariş tamamlanmayacaktır.

3. "Temizle"ye tıklayın ve işlemi onaylayın.

Bu noktada "wp_woocommerce_sessions" tablosu boştur, bu nedenle tüm müşteri alışveriş oturumları silinmiştir.

Sorun çözülmekten çok uzak. wp_woocommerce_sessions SQL tablosu içinde tekrar veri toplayacak ve varsayılan olarak tekrar oranlar kazanacaktır, ki bu arzu edilmeyen bir durumdur.

Müşteri oturumlarının WooCommerce'de kalıcı olarak depolanmasını nasıl durdururuz - wp_woocommerce_sessions?

Yukarıda "wp_woocommerce_sessions" tablosunun veritabanından nasıl boşaltılabileceğini gösterdik ancak müşteri oturumlarının tekrar toplanacağı birkaç gün sonra sorun tekrar ortaya çıkacaktır.

WooCommerce 2.5'ten önce, müşteri oturumları çerezler aracılığıyla yakalanırdı ve bunlar daha sonra WordPress tablosuna kaydedilirdi.wp_options".
Daha büyük mağazalar için bu yöntem genellikle felaketlere yol açmıştır. "Wp_options", genel seçenekler ve ayarlar tarafından kullanılan, WordPress'in hayati bir tablosudur. Depolanan istemci oturumlarını belirleme ve manuel olarak silme wp_options kolay bir iş değildi.
WooCommerce performansı en iyi değildi ve zaman içinde ölçeklenebilirlik hassas bir noktaydı.

WooCommerce 2.5'in 2015'te piyasaya sürülmesiyle birlikte, WooCommerce geliştiricileri, temel olarak yeni bir WooCommerce oturum işleme ve depolama sistemi tanıttı. WP Oturum Yöneticisi. Bu sistem ortaya çıkmasına neden oldu. wp_woocommerce_sessions. Veritabanındaki diğer tablolarla etkileşime girmeyen, istemci oturumları için ayrılmış bir tablo. Büyük hatalar olması durumunda, kayıplar minimum olmalıdır.

Fark ettiğim kadarıyla, WooCommerce 2.5'ten önce başlatılan ve zaman içinde sürekli güncellemeler alan çevrimiçi mağazalar, müşteri oturumlarının otomatik olarak silinmesiyle ilgili bazı sorunlar yaşıyor. Büyük olasılıkla, WooCommerce 2.5'in daha yeni bir sürümünde veya güncellemelere ayak uyduramayan bir WordPress / WooCommerce eklentisinde görünen bir hatadır.

Benim durumumda, dosyaya eklenen bir işlevle bir çakışma oldu. functions.php temanın ve hangi süresi dolmuş oturumlardan sonra otomatik silmeyi önler woocommerce_sessions.
Böyle bir sorunla karşı karşıyaysanız, olası tüm nedenleri dikkatlice araştırmanız gerekir. SQL hatası, SQL izinleri, Cron Job, diğer eklentilerle çakışıyor ve son olarak, zaman içinde kodda yaptığınız değişiklikleri kontrol edin.

WooCommerce'in müşteri oturumlarını yönetebilen bir eklentiyi yalnızca 29 dolara sunduğunu gördük. “WooCommerce için Sepeti ve Oturumları Temizle". Elbette, oturumların programlı olarak silinmesine ek olarak, modülün size yardımcı olabilecek birkaç aracı vardır.

Daha basit bir seçenek zamanlanmış silme "woocommerce_sessions"Birer gün arayla, aşağıdaki kod ile kullanılabilir 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();
}

Yardıma ihtiyacınız varsa veya başka bir çözümünüz varsa yorum bırakın.

Teknoloji konusunda tutkulu, işletim sistemleri hakkında test etmeyi ve öğreticiler yazmayı seviyorum macOSLinux Windows, WordPress, WooCommerce ve LEMP web sunucusu yapılandırması hakkında (Linux, NGINX, MySQL ve PHP). üzerine yazıyorum StealthSettings.com'da 2006'dan beri ve birkaç yıl sonra, ekosistemdeki cihazlar hakkında iHowTo.Tips eğitimleri ve haberleri yazmaya başladım. Apple: iPhoneiPad, Apple İzle, HomePod, iMac, MacBook, AirPod'lar ve aksesuarlar.

Leave a Comment