WooCommerce (ako aj každá iná e-commerce platforma) využíva stavy objednávok na to, aby zákazníkovi, či predajcovi dal najavo v akom štádiu sa objednávka nachádza. Štandardne ponúka WooCommerce tieto stavy.
- Prijatá
- Čaká na platbu
- Spracováva sa
- Vybavená
- Refundovaná
- Neúspešná
- Zrušená
Niektoré stavy nastavuje samotný WooCommerce, iné nastavuje implementovaná platobná brána, alebo iné pluginy, a niektoré stavy mení správca obchodu manuálne. Často však defaultné stavy objednávok nestačia na to, aby sa v objednávkach udržal potrebný prehľad. Veľmi dobrým príkladom je napríklad WooCommerce obchod, ktorý objednávky exportuje do externého ERP systému v určitom formáte. V takomto prípade nám veľmi dobre poslúži dodatočný stav objednávky – Exportovaná.
Vytvorenie nového stavu
Najprv je potrebné zaregistrovať nový stav objednávky v súbore functions.php:
<?php
function register_exported_order_status() {
register_post_status( 'wc-exported', array(
'label' => 'Exportovaná',
'public' => true,
'exclude_from_search' => false,
'show_in_admin_all_list' => true,
'show_in_admin_status_list' => true,
'label_count' => _n_noop( 'Objednávka bola exportovaná', 'Objednávka bola exportovaná' )
) );
}
add_action( 'init', 'register_exported_order_status' );
?>Následne musíme novo vytvorený stav pridať do poľa WooCommerce stavov. Často záleží na tom, v akom poradí sú stavy v tomto poli uložené. V našom prípade je rozumné, aby stav „Exportovaná“ mohla objednávka nadobudnúť iba v prípade, že už obsahuje stav „Vybavená“. Nový stav teda pridáme za stav „Vybavená“, ktorý je defaultne uložený ako ‚wc-completed‘.
<?php
function add_exported_order_statuses( $order_statuses ) {
$new_order_statuses = array();
foreach ( $order_statuses as $key => $status ) {
$new_order_statuses[ $key ] = $status;
if ( 'wc-completed' === $key ) {
$new_order_statuses['wc-exported'] = 'Exportovaná';
}
}
return $new_order_statuses;
}
add_filter( 'wc_order_statuses', 'add_exported_order_statuses' );
?>V prípade, že vám z akéhokoľvek dôvodu na výslednom poradí stavov nezáleží (nový stav chcete pridať na koniec), postačí vám namiesto funkcie vyššie tento kód:
<?php
function add_exported_order_statuses( $order_statuses ) {
$order_statuses['wc-exported'] = 'Exportovaná';
return $order_statuses;
}
add_filter( 'wc_order_statuses', 'add_exported_order_statuses' );
?>Stav objednávky potom môžme zmeniť na „Exportovaná“ pomocou WooCommerce administrácie, alebo jednoduchého skriptu (napr. v rámci pluginu):
$order->update_status('wc-exported'); V zozname už vidíme exportované objednávky a automaticky funguje aj filtrácia, či zoradenie. Objednávky sa defaultne zobrazujú bezfarebne (v rovnakej šedej farbe, ako napr. Prijaté objednávky).

V prípade, že si tento stav chcete farebne odlíšiť, aby ste sa v zozname vedeli ľahšie orientovať, stačí vám pridať pár riadkov CSS kódu do administrácie, pomocou hooku „admin_head“:
<?php
function my_custom_admin_css() {
echo '<style>
.status-exported {
color: #173e86 !important;
background-color: #9cd7fa !important;
}
</style>';
}
add_action('admin_head', 'my_custom_admin_css');
?>Výsledok potom môže vyzerať napríklad takto:

V prípade, že potrebujete pomoc s nastavením jednoduchého webu, alebo s programovaním komplexného webového riešenia, ozvite sa nám, sme tu pre vás!