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 .

Čtěte  Zobrazení podkategorií mimo výpis produktů

1. Definování stavu objednávky

Pro definici potřebujete zadat:

  • id stavu – wc-custom-status (stav objednávky musí vždy začínat wc-)
  • label – název stavu – Custom status
  • public – zobrazení stavu postu na frontendu (vždy false pro stav objednávky)
  • exclude_from_search – vyloučení postů z vyhledávání (false)
  • show_in_admin_all_list – zobrazení v adminu (true)
  • show_in_admin_status_list – zobrazení v seznamu stavů (true)
  • label_count – název pro zobrazení počtu objednávek s tímto stavem

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.

Čtěte  Socute free šablona pro Woocommerce

About The Author

Zajímá mne Wordpress, responsivní šablony a zkrátka vše kolem tohoto skvělého redakčního systému.

Související články

1 Comment

  1. Pingback: Jak vytvořit vlastní stav objednávky ve WooCommerce – WP kompas

Přidejte komentář

Vaše emailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *

Chcete mít přehled o dění ve světě WordPressu?

Přímo do vašeho emailu

Pravidelný přehled o novinkách, trendech a událostech, které se točí kolem WordPressu. Souhrn toho nejzajímavějšího od nás i ze zahraničí.