30, Déc 2024
WooCommerce : ajouter des statuts de commande personnalisés
WooCommerce propose par défaut plusieurs statuts pour les commandes, comme « En cours », « Terminé », « Annulé », etc. Cependant, il se peut que vous ayez besoin d’ajouter des statuts personnalisés pour mieux suivre l’avancement des commandes dans votre boutique en ligne.
Dans ce tutoriel, nous allons vous montrer comment ajouter deux nouveaux statuts de commande : « Expédié » et « Livré au client ».
1. Préparer l’environnement
Avant de commencer, assurez-vous d’utiliser un thème enfant pour modifier votre fichier functions.php sans risquer de perdre vos modifications lors des mises à jour du thème principal.
2. Ajouter le code dans le fichier functions.php
Le code ci-dessous vous permet d’ajouter les statuts « Expédié » et « Livré au client » dans WooCommerce. Copiez ce code et collez-le dans le fichier functions.php de votre thème enfant.
Code à ajouter :
phpCopier le code/*
* Enregistre le statut "Expédié"
*/
function register_expedie_order_status() {
register_post_status( 'wc-expedie-shipment', array(
'label' => 'Expedié',
'public' => true,
'show_in_admin_status_list' => true,
'show_in_admin_all_list' => true,
'exclude_from_search' => false,
'label_count' => _n_noop( 'Expedié <span class="count">(%s)</span>', 'Expedié <span class="count">(%s)</span>' )
) );
}
/*
* Enregistre le statut "Livré au client"
*/
function register_livre_client_order_status() {
register_post_status( 'wc-livre-shipment', array(
'label' => 'Livré au client',
'public' => true,
'show_in_admin_status_list' => true,
'show_in_admin_all_list' => true,
'exclude_from_search' => false,
'label_count' => _n_noop( 'Livré au client <span class="count">(%s)</span>', 'Livré au client <span class="count">(%s)</span>' )
) );
}
/*
* Ajoute les nouveaux statuts à la liste des statuts de commande existants
*/
function add_custom_order_statuses( $order_statuses ) {
// Enregistre les statuts seulement une fois
if ( ! isset( $order_statuses['wc-expedie-shipment'] ) ) {
register_expedie_order_status();
}
if ( ! isset( $order_statuses['wc-livre-shipment'] ) ) {
register_livre_client_order_status();
}
// Ajoute les statuts à la liste des statuts de commandes
$order_statuses['wc-expedie-shipment'] = 'Expedié';
$order_statuses['wc-livre-shipment'] = 'Livré au client';
return $order_statuses;
}
// Hook pour ajouter les statuts à la liste de WooCommerce
add_filter( 'wc_order_statuses', 'add_custom_order_statuses' );
3. Explications du code
- Enregistrement des statuts personnalisés :
La fonctionregister_post_status()est utilisée pour enregistrer de nouveaux statuts. Ici, deux statuts sont ajoutés : « Expédié » (avec le slugwc-expedie-shipment) et « Livré au client » (avec le slugwc-livre-shipment).Chaque statut a plusieurs options :label: Le nom qui sera affiché dans l’interface d’administration.public: Définit si le statut est public et visible dans la liste des statuts de commande.show_in_admin_status_list: Définit si le statut doit être visible dans la liste des statuts dans l’administration.exclude_from_search: Permet d’exclure ce statut des résultats de recherche.label_count: Permet d’afficher le nombre de commandes pour ce statut.
- Ajout des statuts à la liste des statuts existants :
La fonctionadd_custom_order_statuses()permet d’ajouter les nouveaux statuts à la liste des statuts de commandes existants dans WooCommerce, juste après le statut « En cours ». - Hook
add_filter:
Le hookadd_filter( 'wc_order_statuses', 'add_custom_order_statuses' )permet d’intercepter la liste des statuts de commande de WooCommerce et d’y ajouter nos statuts personnalisés.
4. Tester les nouveaux statuts
Une fois que vous avez ajouté ce code dans votre fichier functions.php, vous devriez voir les nouveaux statuts « Expédié » et « Livré au client » apparaître dans l’interface d’administration des commandes WooCommerce. N’oubliez pas de vider vos caches avant de tester.
Pour tester, vous pouvez créer une commande ou modifier une commande existante, et vous pourrez sélectionner « Expédié » ou « Livré au client » dans la liste des statuts de la commande.
5. Conclusion
Vous avez maintenant deux nouveaux statuts personnalisés dans WooCommerce : « Expédié » et « Livré au client », que vous pouvez utiliser pour suivre l’avancement des commandes de manière plus précise.
En ajoutant ces statuts, vous pourrez mieux gérer les étapes de livraison et fournir une meilleure expérience utilisateur pour vos clients.
Ce code a été testé sur WordPress 6.7.1 et Woocommerce 9.3.3
Un nouveau projet WordPress/WooCommerce ? Besoin d’aide ?
Que vous lanciez un site WordPress pour votre entreprise, un blog personnel, ou une boutique en ligne, je suis là pour vous accompagner à chaque étape.
Contactez-moi, je me ferai un plaisir de vous aider à concrétiser votre projet avec professionnalisme et expertise avec un budget maîtrisé.
Laisser un commentaire
Super pour éviter de prendre un énième plugin.
En revanche, les statuts appraissent bien dans l’interface d’administration des commandes, mais pas en « actions groupées » dans la liste des commandes.
Une idée ?
Bonjour Arnaud,
Merci pour ton retour, tu as raison : le code ajoute bien les statuts dans la fiche de commande, mais WooCommerce ne les ajoute pas automatiquement dans le menu des actions groupées.
Il suffit d’ajouter ce code à la suite du précédent :
/**
* Ajoute les statuts personnalisés aux actions groupées WooCommerce.
*/
function ajouter_statuts_personnalises_actions_groupees( $actions ) {
$actions[‘mark_expedie-shipment’] = ‘Changer le statut en Expédié’;
$actions[‘mark_livre-shipment’] = ‘Changer le statut en Livré au client’;
return $actions;
}
/**
* Ancienne interface des commandes WooCommerce.
*/
add_filter(
‘bulk_actions-edit-shop_order’,
‘ajouter_statuts_personnalises_actions_groupees’
);
/**
* Nouvelle interface des commandes compatible HPOS.
*/
add_filter(
‘bulk_actions-woocommerce_page_wc-orders’,
‘ajouter_statuts_personnalises_actions_groupees’
);
Les options « Changer le statut en Expédié » et « Changer le statut en Livré au client » apparaîtront ensuite normalement dans le menu « Actions groupées » de la liste des commandes.
Il n’est pas nécessaire d’ajouter un traitement supplémentaire : WooCommerce reconnaît automatiquement le préfixe `mark_` et applique le statut correspondant aux commandes sélectionnées.
Pense simplement à vider le cache de l’administration ou à recharger complètement la page après avoir ajouté le code.
Merci !