Při vytváření nového WooCommerce e-shopu pomocí klonu stávajícího jsem narazil problém, jak vymazat tisíce objednávek.
WooCommerce neobsahuje žádný nástroj, který by objednávky smazal. Maximálně se může využít hromadných úprav v přehledu objednávek. Nicméně i zde by to bylo na delší dobu, protože takto lze smazat najednou jen něco okolo 300 objednávek a akci bych musel opakovat několikrát, než by se to vše smazalo.
Plugin WC Delete all orders, který hromadné mazaní nabízí mi nefungoval.
Hromadné mazání objednávek přes phpMyAdmin
Nejjednodušší cesta jak hromadně smazat nebo přesunout do koše existující objednávky, je přes phpMyAdmin a provedení dotazu v databázi.
Na svém hostingu se pomocí phpMyAdmin přihlašte do WordPress databáze a v horní záložce vyberte SQL.
Poznámka: Nezapomeňte se ujistit, že v levém sloupečku máte vybranou databázi, kde chcete mazat objednávky.
Do pole Spustit SQL dotaz(y) na databázi XYZ vložte následující dotaz:
update wp_posts set post_status = 'trash' where post_type = 'shop_order';
Pozor: Pokud používáte jiný přefix v databázi, tak nezapomeňte upravit wp_.
A klikněte na tlačítko Proveď. Dotaz by měl proběhnout a přesunout všechny WooCommerce objednávky do Koše.
Objednávky jsou ve WooCommerce vlastní typ příspěvku (shop_order) a používají všechny základní funkcionality WordPress. Jakýkoliv typ příspěvku má pole post_status, které nese informaci o tom, zda je příspěvek publikován, v konceptu, v koši atd. Právě toho využívá naše funkce, která u všech objednávek nastaví thrash (koš).
Když máte objednávky v koši, tak pro jejich smazání pak už jen stačí jít do administrace stránky, v levém menu vybrat WooCommerce -> Objednávky, kliknout na záložku Koš a na tlačítko Vysypat koš.