Som jeg sagde i andre artikler, er WooCommerce et mere robust og fleksibelt modul, der er i stand til at omdanne WordPress til en Ideel online butik til en virksomhed i starten.
tilfreds
For en online butik med beskeden størrelse kan Wocommerce rulles på en “Delt hosting”, at være i stand til at udholde let og 5.000 produkter / 100 ordrer ajour, hvis det anvendte emne ikke forbruger mange ressourcer og ikke misbruger andre moduler (plugins).
Optimering af kildekoden Fra temaet (WP -temaer), moduler (WP -plugins) og Optimering af databasen Der er også to aspekter, som vi er nødt til at tage meget af.
Jeg bemærkede de foregående dage, da en online butik med beskedne dimensioner begynder At forbruge en masse mange RAM- og CPU -ressourcer på en dedikeret server gavmild. Dette høje forbrug af ressourcer har ført til en standard til en “belastning” Øget på serveren og en stor tid til at oplade siderne i aftenbutikken.
Når vi bemærker en uberettiget stor belastning på en webserver, er det godt at undersøge årsagerne, inden vi tager nogen foranstaltning.
I databasen bemærkede jeg, at bordet “wp_woocommerce_sessions
” Det er enormt. Det var over 6 GB. Et stort volumen til en tabel fra en database, der normalt ikke oversteg 100 MB i alt.

Denne este wp_woocommerce_ssionals?
Som vi kan fornemme fra hans navn, bordet “wp_woocommerce_sessions
” Indeholder PHP -sessioner (PHP -sessioner).
Disse sessioner er handlinger fra brugere på webstedet (eller webrobotter) og når oftest databasen gennem cookies. I WP_WOOCOMMERMACE_SESSIONS gemmes data om de produkter, der er placeret af brugere i indkøbskurven, kuponer, transportgebyrer, kundedata og mange andre oplysninger relateret til produktordreprocessen.
Disse sessioner oprettes, selv om brugeren er registreret på webstedet eller ej, og normalt skal de udløbe og slette automatisk.
Desværre sker det ikke altid, at disse sessioner slettes, og i nogle tilfælde forbliver de permanent opbevaret i WP_WOOCOMMERMACHE_SESSIONS, hvilket får bordet til at nå et stort volumen.
Sådan tørrer du bordet wp_woocommerce_sessions
Din SQL?
1. vi går til Dashboard → WooCommerce → Status → Værktøjer (fane).
2. Vi går ned til muligheden “Klare kundesessioner“. Omhyggelig! Sletningen af klienternes sessioner involverer sletning af alle de produkter, der er placeret af dem i indkøbskurven. Hvis når de sletter disse sessioner er kunder, der har produkter i kurven, forsvinder de, og den eventuelle rækkefølge vil ikke være afsluttet.
3. Klik “Klar” og bekræftelse af operationen.

På dette tidspunkt tabellen “wp_woocommerce_sessions” Det er tomt, så alle kundeshopping sessioner er blevet slettet.
Problemet løses langt langt. Tabellen SQL WP_WOOCOMMERMACE_SESSIONS vil indsamle data i den, og som standard får det proportioner igen, hvilket ikke er ønskeligt.
Hvordan får vi kundesessioner til at stoppe permanent i Woocommerce – wp_woocommerce_sessions
?
Jeg viste ovenfor, hvordan tabellen kan tømmes “wp_woocommerce_sessions” Fra databasen, men problemet vises igen efter et par dage, hvor klientsessioner indsamles.
Før Woocommerce 2.5 blev kundesessioner fanget gennem cookies og derefter gemt i WordPress -tabel “wp_options
“.
For større butikker har denne metode ofte ført til katastrofer. “WP_OPTIONS” At være en vigtig tabel over WordPress, brugt af generelle muligheder og indstillinger. Manuel identifikation og sletning af klientsessioner, der er gemt i wp_options
Det var ikke et let arbejde.
Woocommerce -præstation var ikke den bedste, og skalerbarheden over tid var et følsomt punkt.
Med lanceringen af WooCommerce 2.5 i 2015 har WooCommerce -udviklere introduceret et nyt WooCommerce -baseret håndterings- og opbevaringssystem WP Sessions Manager. Dette system har ført til udseendet wp_woocommerce_sessions
. En dedikeret tabel til kundesessioner, som i databasen ikke interagerer med andre tabeller. I tilfælde af større fejl skal tabene være minimale.
Fra det, jeg bemærkede, har de online butikker, der blev lanceret før WooCommerce 2.5, og som har modtaget konstante opdateringer over tid, nogle problemer med hensyn til den automatiske sletning af klientsessionerne. Det handler sandsynligvis om en fejl på en nyere version af WooCommerce 2.5 eller en WordPress / Woocommerce -plugin, der ikke har holdt trit med opdateringerne.
I mit tilfælde var det en konflikt med en funktion tilføjet i filen functions.php
af temaet, og hvilken forhindre automatisk sletning efter en udløbne sessioner af woocommerce_sessions
.
Hvis du oplever et sådant problem, skal du omhyggeligt undersøge alle mulige årsager. SQL -fejl, SQL -forfølgelser, CRON -job, er i konflikt med andre plugins og sidst, men ikke mindst kontroller dine ændringer i koden over tid.
Jeg så, at Woocommerce kun tilbyder $ 29 pr. Plugin, der er i stand til at administrere kundes. “Klar vogn og sessioner for WooCommerce“. Udover den programmerede sletning af sessionerne har modulet naturligvis flere værktøjer, der kan være nyttige.
En enklere mulighed for programmeret sletning a “woocommerce_sessions
” med en dags intervaller, er forskydningen med den næste kode i 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();
}
Efterlad en kommentar, hvis du har brug for hjælp eller har en anden løsning.
Jeg har ingen måde at slette dataene vejer 500 MB, og jeg har 1000 MB grænse for at slette alt er fuldstændigt udfyldt…En eller anden løsning?