Diğer makalelerde de söylediğim gibi, WooCommerce dönüşebilen, giderek daha sağlam ve esnek bir modüldür. WordPress Bir Yeni başlayan 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 "paylaşılan hosting" üzerinde de çalıştırılabilir, kullanılan tema çok fazla kaynak tüketmiyorsa ve diğer modülleri (eklentileri) kötüye kullanmıyorsanız, 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 küçük bir çevrimiçi mağazanın açıldığını fark ettim çok fazla RAM kaynağı tüketmek ve CPU özel bir sunucuda 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, web sitesi kullanıcılarının (veya web robotlarının) eylemleridir ve çoğu zaman veritabanına çerezler aracılığıyla ulaşır. 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ı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 her zaman mümkün olmuyor ve bazı durumlarda kalıcı olarak wp_woocommerce_sessions'da saklanıyor, bu da bu tablonun oldukça büyük bir hacme ulaşmasına neden oluyor.
tablo nasıl silinir wp_woocommerce_sessions
SQL'den mi?
1. gitmek Kullanıcı Paneli → WooCommerce → Müşteri | Üye seç → Tools (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.

Şu anda "wp_woocommerce_sessions" tablosu boş olduğundan tüm müşteri alışveriş oturumları silindi.
Sorun çözülmekten çok uzak. wp_woocommerce_sessions SQL tablosu yine veri toplayacak ve varsayılan olarak yeniden oranlar elde edecek, bu da arzu edilmeyen bir durum.
İstemci oturumlarının kalıcı olarak saklanmasını nasıl durdurabiliriz? WooCommerce - wp_woocommerce_sessions
?
Yukarıda "wp_woocommerce_sessions" tablosunun veritabanından nasıl boşaltılabileceğini gösterdim ancak birkaç gün sonra müşteri oturumları tekrar toplandığında sorun tekrar ortaya çıkacaktır.
önce WooCommerce 2.5, müşteri oturumları, daha sonra tabloya kaydedilmek üzere tanımlama bilgileri aracılığıyla alındı WordPress "wp_options
".
Daha büyük mağazalar için bu yöntem genellikle felaketlere yol açmıştır. "wp_options”Yaşamsal tablo olmak WordPress, genel seçenekler ve ayarlar tarafından kullanılır. Depolanan istemci oturumlarını belirleme ve manuel olarak silme wp_options
kolay bir iş değildi.
performansları WooCommerce en iyisi değillerdi ve zamanla ölçeklenebilirlik hassas bir noktaydı.
lansmanı ile WooCommerce 2.5'te 2015, geliştiriciler WooCommerce yeni bir oturum işleme ve depolama sistemi tanıttı WooCommerceDayanarak 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.
Gözlemlediğim kadarıyla, çevrimiçi mağazalar daha önce açıldı WooCommerce 2.5 ve zaman içinde sürekli güncellemeler alan, müşteri oturumlarının otomatik olarak silinmesiyle ilgili bazı sorunlar var. Büyük olasılıkla daha yeni bir sürümde ortaya çıkan bir hatadır. WooCommerce 2.5 veya bir eklenti WordPress / WooCommerce güncellemelere ayak uyduramayan.
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.
bunu gördüm WooCommerce müşteri oturumlarını yönetebilen bir eklentiyi yalnızca 29 ABD Doları karşılığında sunar. "Şunun için Sepeti ve Oturumları Temizle: WooCommerce". 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.
500mb ağırlığındaki verileri silmek için hiçbir yolum yok ve her şeyi tekrar tamamen doldurmak için dakikada 1000mb sınırım var… .bir çözüm?