Ako som povedal v iných článkoch, WooCommerce je robustnejší a flexibilnejší modul, ktorý je schopný zmeniť WordPress na a Ideálny internetový obchod pre firmu na začiatku.
spokojnosť
Pre internetový obchod so skromnou veľkosťou je možné Wocommerce vkĺznuť na a “zdieľaný hosting”, Byť schopný vydržať ľahké a 5 000 produktov / 100 objednávok, ak použitá téma nespotrebuje veľa zdrojov a nezneužíva iné moduly (doplnky).
Optimalizácia zdrojového kódu Z témy (témy WP), modulov (doplnky WP) a Optimalizácia databázy Existujú tiež dva aspekty, ktoré musíme vziať veľa.
Všimol som si predchádzajúce dni, keď sa začína internetový obchod skromných rozmerov na konzumáciu mnohých zdrojov RAM a CPU na vyhradenom serveri veľkorysý. Táto vysoká spotreba zdrojov viedla k predvoleniu “načítať” Zvýšil sa na serveri a veľký čas na nabíjanie stránok večerného obchodu.
Keď si všimneme neopodstatnené veľké zaťaženie na webovom serveri, je dobré preskúmať príčiny pred prijatím akéhokoľvek opatrenia.
V databáze som si všimol, že tabuľka “wp_woocommerce_sessions” Je to obrovské. Bolo to viac ako 6 GB. Obrovský objem pre tabuľku z databázy, ktorá normálne nepresiahla celkom 100 MB.

Tento este wp_woocommerce_ssionals?
Ako dokážeme cítiť z jeho mena, tabuľka “wp_woocommerce_sessions” Obsahuje relácie PHP (Relácie PHP).
Tieto relácie sú akcie používateľov na webe (alebo webových robotoch) a najčastejšie dosahujú databázu prostredníctvom súborov cookie. V WP_WOOCommerce_sessions sa ukladajú údaje o produktoch umiestnených používateľmi v nákupnom košíku, kupónoch, prepravných poplatkoch, údajoch o zákazníkoch a mnohých ďalších informáciách týkajúcich sa procesu objednávky produktu.
Tieto relácie sa vytvárajú, dokonca aj to, či je užívateľ zaregistrovaný na webe, a zvyčajne musí vypršať a automaticky odstrániť.
Bohužiaľ sa vždy nestane, že tieto relácie sú odstránené av niektorých prípadoch zostávajú natrvalo uložené v WP_woocommerce_sessions, vďaka čomu je tabuľka dosiahnutá veľký objem.
Ako utierať stôl wp_woocommerce_sessions Din SQL?
1. Ideme do Prístrojová doska → Mokra → Stav → Náradie (tab).
2. Ideme dolu na možnosť “Jasné zákaznícke relácie“. Opatrne! Vymazanie relácií klientov zahŕňa vymazanie všetkých produktov, ktoré umiestnili v nákupnom košíku. Ak sú pri odstraňovaní týchto relácií zákazníci, ktorí majú v koši výrobky, zmiznú a prípadná objednávka nebude dokončená.
3. Kliknite “Vyčistiť” a potvrdenie operácie.

V tejto dobe tabuľka “wp_woocommerce_sessions” Je prázdny, takže všetky nákupné stretnutia zákazníkov boli odstránené.
Tento problém sa zďaleka nevyrieši. Tabuľka SQL WP_WOOCOMMERCE_SESSIONS v nej zhromaždí údaje a predvolene získa proporcie, čo nie je žiaduce.
Ako urobíme zákaznícke stretnutia natrvalo v WooCommerce – wp_woocommerce_sessions?
Ukázal som vyššie, ako je možné vyprázdniť tabuľku “wp_woocommerce_sessions” Z databázy, ale problém sa objaví opäť po niekoľkých dňoch, keď sa zhromaždia klientske relácie.
Pred WooCommerce 2.5 boli zákaznícke relácie zachytené prostredníctvom cookie a potom sa uložili do tabuľky WordPress “wp_options“.
Pre väčšie obchody táto metóda často viedla k katastrofám. “wp_options” Byť životne dôležitou tabuľkou WordPress, ktorú používajú všeobecné možnosti a nastavenia. Manuálna identifikácia a vymazanie klientskych relácií uložených v wp_options Nebola to ľahká práca.
Výkon WooCommerce nebol najlepší a škálovateľnosť v priebehu času bola citlivým bodom.
Založením spoločnosti WooCommerce 2.5 v roku 2015 zaviedli vývojári spoločnosti WooCommerce nový manipulačný a úložný systém založený na WooCommerce. WP Sessions Manager. Tento systém viedol k vzhľadu wp_woocommerce_sessions. Špeciálna tabuľka pre zákaznícke relácie, ktorá v databáze neinteraguje s inými tabuľkami. V prípade veľkých chýb by straty mali byť minimálne.
Z toho, čo som si všimol, online obchody spustené pred WooCommerce 2.5 a ktoré v priebehu času dostávali neustále aktualizácie, majú určité problémy týkajúce sa automatického vymazania klientskych relácií. Je to s najväčšou pravdepodobnosťou o chybe na novšej verzii doplnku WooCommerce 2.5 alebo doplnku WordPress / WooCommerce, ktorý sa s aktualizáciami nedodržal.
V mojom prípade to bol konflikt s funkciou pridanou v súbore functions.php témy a ktorá zabrániť automatickému vymazaniu po vypršaní relácií woocommerce_sessions.
Ak máte taký problém, musíte starostlivo preskúmať všetky možné príčiny. Chyba SQL, prenasledovanie SQL, práca Cron, konflikty s inými doplnkami a v neposlednom rade skontrolujte svoje zmeny v kóde v priebehu času.
Videl som, že WooCommerce ponúka iba 29 dolárov, doplnok, ktorý je schopný spravovať zákazníkov. “Čistý košík a relácie pre WooCommerce“. Okrem naprogramovaného vymazania relácií má modul niekoľko nástrojov, ktoré by mohli byť užitočné.
Jednoduchšia možnosť naprogramované vymazanie a “woocommerce_sessions” v jednom dni intervalov, je posun s ďalším kódom v 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();
}
Zanechajte komentár, ak potrebujete pomoc alebo máte iné riešenie.
Nemám spôsob, ako vymazať údaje vážiť 500 MB a mám limit 1 000 MB na minútu vymaženia…Nejaké riešenie?