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&eacute; <span class="count">(%s)</span>', 'Expedi&eacute; <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&eacute; 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&eacute; au client <span class="count">(%s)</span>', 'Livr&eacute; 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&eacute;';
    $order_statuses['wc-livre-shipment'] = 'Livr&eacute; 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 fonction register_post_status() est utilisée pour enregistrer de nouveaux statuts. Ici, deux statuts sont ajoutés : « Expédié » (avec le slug wc-expedie-shipment) et « Livré au client » (avec le slug wc-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 fonction add_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 hook add_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

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *