Musilda.cz

Jak vytvořit vlastní stav objednávky ve WooCommerce

WooCommerce při vytváření objednávky, používá několik výchozích stavů, které použije pro označení stavu, v kterém se objednávka nachází. Tyto stavy jdou poměrně jednoduše rozšířit.

Objednávka je technicky post type. To znamená, že má stejné prvky, jako post a pro stavy objednávek se používá post status. Každý post má stavy draft, publish atd. WordPress umožňuje registrovat vlastní stavy pomocí register_post_status.

Toho využívá i WooCommerce a rozšiřuje stavy postů o:

Pending payment (čeká na platbu) – při vytvoření objednávky, když ještě nebyla zpracována platební metoda.

On hold (čeká na vyřízení) – vytvořená objednávka, jsou třeba další kroky, typicky se jedná o bankovní převod, kdy čekáte na peníze, aby jste poslali objednávku zákazníkovi.

Processing (zpracovává se) – stav, kdy je objednávka již ve zpracovávání, ale není dokončená. Používám pro platbu kartou, nebo při odeslání zásilky na dobírku.

Completed (dokončeno) – dokončená objednávka.

Cancelled (zrušeno) – úspěšná objednávka, která byla zrušena.

Failed (selhalo) – neúspěšná objednávka, většinou se jedná o technickou chybu, nebo zrušení platby na platební brány.

Refunded (vráceno) – stav objednávky po vrácení.

O stavech objednávky jsem psal již dříve v návodu k WooCommerce

Registrace stavů objednávky

WooCommerce registruje vlastní stavy postů v souboru wc-class-post-types.php v metodě register_post_types. Zde je nadefinováno pole polí, které jsou pak procházeny a používány jako argumenty pro register_post_status.

Celé nadefinované pole máte k dispozici pomocí filtru woocommerce_register_shop_order_post_statuses .

1. Definování stavu objednávky

Pro definici potřebujete zadat:

2. Přidání stavu do seznamu výchozích stavů

Jako druhý krok, musíme přidat nový stav do seznamu všech stavů ve Woocommerce. Toto se používá například v detailu objednávky, pro vykreslení selectu se stavy objednávek.

WooCommerce má filtr wc_order_statuses, kam vložíte již nadefinované id stavu a název stavu.

3. Přidání do hromadných úprav

Posledním krokem je přidání stavu do hromadných úprav, aby bylo možné v administraci objednávek, hromadně označit více objednávek novým stavem.

Proto se používá filtr bulk_actions-edit-shop_order, kam id bulk akce a její název. Pozor na to, že, nyní již nesmíme použít prefix wc- , ale mark_.

4. Kompletní kód pro vytvoření stavu

Všechny tři kroky pak v kódu vypadají takto:

Tím jste do e-shopu přidali nový vlastní stav, ale většinou není práce u konce, protože na stavy objednávek navazují také další kroky, jako třeba odeslání e-mailu. Také je většinou potřeba přidat tlačítko do akcí objednávek, ale to bude tématem jiného článku.

Další užitečné snippety najdete na stránce Užitečné snippety pro WooCommerce

Exit mobile version