Jak jsem řekl v jiných článcích, WooCommerce je robustnější a flexibilnější modul, který je schopen proměnit WordPress v a Ideální internetový obchod pro firmu na začátku.
obsah
Pro internetový obchod se skromnou velikostí může být WoCommerce válcován na a “Sdílený hosting”, schopnost lehce vydržet a 5 000 produktů / 100 objednávek aktuální, pokud použité téma nekonzumuje mnoho zdrojů a nezneužívá jiné moduly (pluginy).
Optimalizace zdrojového kódu Z tématu (témata WP), modulů (pluginy WP) a Optimalizace databáze Existují také dva aspekty, které musíme vzít hodně.
Všiml jsem si předchozích dnů, když začíná internetový obchod skromných rozměrů Konzumujte mnoho mnoha zdrojů RAM a CPU na dedikovaném serveru štědrý. Tato vysoká spotřeba zdrojů vedla k výchozímu “zatížení” Zvýšil se na serveru a velký čas na nabíjení stránek večerního obchodu.
Když si všimneme neopodstatněného velkého zatížení na webovém serveru, je dobré prozkoumat příčiny před provedením jakéhokoli opatření.
V databázi jsem si všiml, že tabulka “wp_woocommerce_sessions
” Je to obrovské. Bylo to přes 6 GB. Obrovský objem pro tabulku z databáze, která normálně nepřesáhla celkem 100 MB.

Tento este wp_woocommerce_ssionals?
Jak můžeme cítit z jeho jména, tabulka “wp_woocommerce_sessions
” Obsahuje relace PHP (PHP relace).
Tato relace jsou akce uživatelů na webu (nebo webových robotech) a nejčastěji se dotazují do databáze prostřednictvím souborů cookie. V WP_WOOCOMMERCE_SESSIOS jsou uložena data o produktech umístěných uživateli do nákupního košíku, kupónů, přepravních poplatků, zákaznických dat a mnoha dalších informací týkajících se procesu objednávky produktu.
Tato relace jsou vytvořena, i když je uživatel na webu registrován nebo ne, a obvykle musí vypršet a automaticky odstranit.
Bohužel se vždy nestane, že tato relace jsou odstraněna a v některých případech zůstávají trvale uloženy v WP_WOOCOMMERCE_SESSISIONS, což způsobuje, že tabulka dosáhne velkého objemu.
Jak vymazat stůl wp_woocommerce_sessions
din sql?
1. Jdeme na Palubní deska → WooCommerce → Postavení → Nástroje (Tab).
2.. Jdeme dolů na možnost “Jasné sezení zákazníků“. Opatrně! Vymazání relací klientů zahrnuje vymazání všech produktů, které jsou uloženy v nákupním košíku. Pokud při mazání těchto relací jsou zákazníci, kteří mají produkty v koši, zmizí a případná objednávka nebude dokončena.
3. klikněte “Jasný” a potvrzení operace.

V této době stůl “wp_wooCommerce_sessions” Je prázdný, takže všechny nákupní relace zákazníků byly odstraněny.
Problém není zdaleka vyřešen. Tabulka SQL WP_WOOCOMMERCE_SESSISES v ní shromažďuje data a ve výchozím nastavení bude znovu získat proporce, což není žádoucí.
Jak se staneme, že se zákazníci trvale zastaví ve WooCommerce – wp_woocommerce_sessions
?
Nahoře jsem ukázal, jak lze stůl vyprázdnit “wp_wooCommerce_sessions” Z databáze, ale problém se znovu objeví po několika dnech, kdy budou shromážděny klientské relace.
Před WooCommerce 2.5 byla zachycena zákaznická relace pomocí souborů cookie a poté uložena v tabulce WordPress “wp_options
“.
Pro větší obchody tato metoda často vedla k katastrofám. “wp_options” Být životně důležitým tabulkou WordPress, používaného obecnými možnostmi a nastavením. Ruční identifikace a vymazání klientských relací uložených v wp_options
Nebyla to snadná práce.
Výkon WooCommerce nebyl nejlepší a škálovatelnost v průběhu času byla citlivým bodem.
Se spuštěním společnosti WooCommerce 2.5 v roce 2015 zavedli vývojáři WooCommerce nový manipulační a skladovací systém založený na WooCommerce Správce relací WP. This system has led to the appearance wp_woocommerce_sessions
. Vyhrazená tabulka pro sezení zákazníků, která v databázi neinteraguje s jinými tabulkami. V případě hlavních chyb by ztráty měly být minimální.
Z toho, co jsem si všiml, jsou online obchody spuštěny před WooCommerce 2.5 a které v průběhu času dostávaly neustálé aktualizace, mají nějaké problémy týkající se automatického vymazání klientských relací. Nejpravděpodobněji se jedná o chybu na novější verzi pluginu WooCommerce 2.5 nebo WordPress / WooCommerce, který s aktualizacemi nedržel krok.
V mém případě to byl konflikt s funkcí přidanou do souboru functions.php
tématu a které zabránit automatickému vymazání po vypršení sezení woocommerce_sessions
.
Pokud takový problém zažíváte, musíte pečlivě prozkoumat všechny možné příčiny. Chyba SQL, perzekuce SQL, práce Cron, konfliktu s ostatními pluginy a v neposlední řadě zkontrolujte změny kódu v průběhu času.
Viděl jsem, že WooCommerce nabízí pouze 29 $ za plugin schopný podávat zákazníky. “Čistý vozík a relace pro WooCommerce“. Samozřejmě, kromě naprogramovaného delece relací, má modul několik nástrojů, které by mohly být užitečné.
Jednodušší možnost naprogramované vymazání a “woocommerce_sessions
” v jednom denních intervalech, je posun s dalším kódem 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();
}
Pokud potřebujete pomoc nebo máte jiné řešení, zanechte komentář.
Nemám způsob, jak smazat data váží 500 MB a mám limit 1000 MB na minutu smazání všeho je zcela naplněno…Nějaké řešení?