Diğer makalelerimde de söylediğim gibi WooCommerce, WordPress'i bir web sitesine dönüştürebilen, giderek daha sağlam ve esnek bir modüldür. başlangıçtaki bir işletme için ideal çevrimiçi mağaza.
içerik
Mütevazı büyüklükte bir çevrimiçi mağaza için WooCommerce aynı zamanda bir platformda da çalıştırılabilir. “paylaşılan barındırma”, eğer kullanılan tema çok fazla kaynak tüketmiyorsa ve diğer modülleri (eklentileri) kötüye kullanmazsanız, günde 5.000 ürün / 100 siparişi kolayca destekleyebilme.
Kaynak kodu optimizasyonu temadan (WP Temaları), modüllerden (WP Eklentileri) ve veritabanı optimizasyonu Ayrıca çok dikkatli olmamız gereken iki husus var.
Geçen gün küçük bir çevrimiçi mağazanın açıldığını fark ettim özel bir sunucuda muazzam miktarda RAM ve CPU kaynağı tüketin cömert. Kaynakların bu yüksek tüketimi dolaylı olarak “yük” sunucuda artış ve çevrimiçi mağaza sayfalarının yüklenme süresinin uzun olması.
Bir web sunucusunda makul olmayan derecede yüksek bir yük fark ettiğimizde, herhangi bir önlem almadan önce nedenlerini dikkatlice araştırmak iyi olur.
Veritabanında tablonun olduğunu fark ettim “wp_woocommerce_sessions” son derece büyüktür. 6 GB'ın üzerindeydi. Normalde toplamda 100 MB'ı aşmayan bir veritabanındaki tablo için çok büyük bir hacim.

wp_woocommerce_sessions nedir?
Adından da anlaşılacağı üzere tablo “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 veri tabanına ulaşırlar. wp_woocommerce_sessions'da kullanıcılar tarafından alışveriş sepetine eklenen ürünlerle ilgili veriler, kuponlar, kargo ücretleri, müşteri verileri ve ürün sipariş süreciyle ilgili daha birçok bilgi depolanır.
Bu oturumlar, kullanıcı siteye kayıtlı olsa da olmasa da oluşturulur ve normalde bir süre sonra süresinin dolması ve otomatik olarak silinmesi gerekir.
Ne yazık ki, bu oturumların silinmesi her zaman gerçekleşmez ve bazı durumlarda kalıcı olarak wp_woocommerce_sessions'da depolanırlar, bu da bu tablonun oldukça büyük bir hacme ulaşmasına neden olur.
Tabloyu nasıl silebiliriz? wp_woocommerce_sessions SQL'de mi?
1. Biz gidiyoruz Gösterge paneli → Woocommerce → Durum → Aletler (sekme).
2. Seçeneğe doğru aşağı kaydırın “Müşteri oturumlarını temizle“. Dikkatli olmak! Müşteri oturumlarının silinmesi, alışveriş sepetine eklenen tüm ürünlerin silinmesi anlamına gelir. Bu oturumları silerken sepetinde ürün bulunan müşteriler varsa bunlar kaybolacak ve olası online sipariş tamamlanamayacaktır.
3. Tıklayın “Temizlemek” ve işlemi onaylayın.

Şu anda masa “WP_WOOCOMMERCE_SESSESSESS” boş olduğundan tüm müşteri alışveriş oturumları silindi.
Sorun çözülmekten çok uzak. wp_woocommerce_sessions SQL tablosu verileri tekrar toplayacak ve varsayılan olarak yeniden oranlar elde edecek, ki bu arzu edilmeyen bir durumdur.
Müşteri oturumlarının WooCommerce'te kalıcı olarak saklanmasını nasıl durdururuz? – wp_woocommerce_sessions?
Yukarıda masanın nasıl boşaltılabileceğini gösterdim “WP_WOOCOMMERCE_SESSESSESS” ancak birkaç gün sonra istemci oturumları yeniden toplandığında sorun yeniden ortaya çıkacaktır.
WooCommerce 2.5'ten önce müşteri oturumları çerezler aracılığıyla kaydediliyor ve ardından WordPress tablosuna kaydediliyordu. “wp_options“.
Daha büyük mağazalar için bu yöntem genellikle felaketlere yol açıyordu. “wp_options” Seçenekler ve genel ayarlar tarafından kullanılan, WordPress'in hayati tablosudur. Depolanan müşteri oturumlarının tanımlanması ve manuel olarak silinmesi wp_options pek de kolay bir iş değildi.
WooCommerce performansı en iyisi değildi ve zaman içinde ölçeklenebilirlik hassas bir noktaydı.
2015 yılında WooCommerce 2.5'in piyasaya sürülmesiyle birlikte WooCommerce geliştiricileri, WooCommerce oturumlarını yönetmek ve depolamak için yeni bir sistemi tanıttı. WP Oturum Yöneticisi. Bu sistem ortaya çıkmasına neden oldu wp_woocommerce_sessions. Veritabanındaki diğer tablolarla etkileşime girmemesi gereken, istemci oturumları için ayrılmış bir tablo. Büyük hatalar durumunda kayıplar minimum düzeyde olmalıdır.
Gözlemlediğim kadarıyla WooCommerce 2.5'ten önce açılan ve zaman içinde sürekli güncelleme alan çevrimiçi mağazalarda müşteri oturumlarının otomatik olarak silinmesi konusunda bazı sorunlar yaşanı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 ortaya çıkan bir hatadır.
Benim durumumda bu, dosyaya eklenen bir işlevle çakışmaydı functions.php temanın ve hangisinin süresi dolan oturumlardan bir süre sonra otomatik olarak silinmesini önler woocommerce_sessions.
Eğer böyle bir sorunla karşı karşıyaysanız olası tüm sebepleri dikkatlice araştırmalısınız. SQL hatası, SQL izinleri, Cron Job, diğer eklentilerle çakışmalar ve son fakat en önemlisi, 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üm. “WooCommerce için Sepeti ve Oturumları Temizle“. Elbette, oturumların planlı olarak silinmesinin yanı sıra modülde size yardımcı olabilecek çeşitli araçlar da bulunmaktadır.
Daha basit bir seçenek planlanmış silme “woocommerce_sessions” bir gün aralıklarla, aşağıdaki kodla 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.
Verileri silme şansım yok. Ağırlığı 500MB ve 1000MB limitim var. Herşeyi sildiğim anda tekrar tamamen doluyor.….herhangi bir çözüm var mı?