WooCommerce est un plugin WordPress génial pour vendre des produits en ligne. Et aujourd’hui, j’aimerais vous montrer comment créer un plugin pour vous permettre de créer des statuts de commande personnalisés. Par défaut WooCommerce fournit ces statuts de commande :
- annulé
- complété
- échoué
- en attente
- en attendant
- En traitement
- remboursé
Mais que faire si vous souhaitez ajouter de nouveaux statuts, ou peut-être modifier des statuts existants ? Vous trouverez ci-dessous un exemple vous montrant à quel point il est facile d’ajouter un nouveau statut de commande à vos commandes WooCommerce.
Visuellement voici le résultat final :
Enregistrer un nouveau statut de commande WooCommerce
Auparavant, WooCommerce utilisait une taxonomie « shop_order_status », donc l’ajout de nouveaux statuts de commande était un peu délicat, cependant, c’est maintenant plus facile que jamais ! Regardez le code ci-dessous pour un exemple.
// Register New Order Statuses
function wpex_wc_register_post_statuses() {
register_post_status( 'wc-custom-order-status', array(
'label' => _x( 'Custom Order Status Name', 'WooCommerce Order status', 'text_domain' ),
'public' => true,
'exclude_from_search' => false,
'show_in_admin_all_list' => true,
'show_in_admin_status_list' => true,
'label_count' => _n_noop( 'Approved (%s)', 'Approved (%s)', 'text_domain' )
) );
}
add_filter( 'init', 'wpex_wc_register_post_statuses' );
// Add New Order Statuses to WooCommerce
function wpex_wc_add_order_statuses( $order_statuses ) {
$order_statuses['wc-custom-order-status'] = _x( 'Custom Order Status Name', 'WooCommerce Order status', 'text_domain' );
return $order_statuses;
}
add_filter( 'wc_order_statuses', 'wpex_wc_add_order_statuses' );
Si vous souhaitez ajouter plusieurs nouveaux statuts de commande, dupliquez simplement la fonction register_post_status dans la fonction wpex_wc_register_post_statuses autant de fois que vous le souhaitez en vous assurant de modifier l’ID et les étiquettes en conséquence. Ajoutez ensuite le nouveau statut de la commande au tableau $order_statuses dans la fonction wpex_wc_add_order_statuses.