Créer des statuts de commande personnalisés sur WooCommerce

Créer des statuts de commande personnalisés sur WooCommerce

WooCommerce ne permet toujours pas de créer ses propres statuts de commande depuis l’administration : il faut une extension, ou quelques lignes de code. L’extension est la bonne option si vous voulez un e-mail automatique à chaque nouveau statut. Le code suffit pour un simple repère dans votre liste de commandes.

En bref

  • WooCommerce propose 7 statuts natifs, sans écran pour en ajouter.
  • Un statut personnalisé tient le client informé, par exemple « En fabrication » pour un artisan.
  • Avec une extension (YITH Custom Order Status, Order Status Manager) : couleurs, actions et e-mails sans code.
  • Avec du code : deux filtres, compatibles avec le stockage des commandes HPOS.
  • Le code seul n’envoie pas d’e-mail : pour ça, l’extension est plus simple.

Les statuts de base, et leur limite

WooCommerce connaît sept statuts : Attente paiement, En cours, En attente, Terminée, Annulée, Remboursée et Échec. Ils décrivent le paiement, pas votre façon de travailler.

Un artisan qui fabrique à la commande, par exemple, passe des jours entre « En cours » et « Terminée ». Pendant ce temps, son client ne sait pas où en est sa commande. Un statut « En fabrication », visible dans son compte et annoncé par e-mail, règle la question.

Un statut personnalisé En préparation inséré entre les statuts natifs En cours et Terminée, qui déclenche un e-mail au client

Méthode 1 : une extension

YITH WooCommerce Custom Order Status (premium) est l’extension qu’on utilise. Elle permet de :

  • créer autant de statuts que nécessaire, chacun avec son nom, sa couleur et une icône ou une étiquette ;
  • remplacer un statut natif de WooCommerce ;
  • envoyer un e-mail personnalisable à chaque passage dans un statut.

Pour chaque statut, vous décidez aussi de son comportement :

  • autoriser ou non l’annulation de la commande ;
  • autoriser le paiement ;
  • considérer la commande comme payée ;
  • donner accès aux fichiers téléchargeables ;
  • compter la commande dans les rapports ;
  • remettre les articles en stock ;
  • afficher un bouton d’action dans la liste des commandes.

WooCommerce vend aussi sa propre extension, Order Status Manager, qui crée, modifie et supprime des statuts, ajoute des boutons pour passer au statut suivant et envoie des e-mails selon les changements de statut.

Méthode 2 : quelques lignes de code

Si un repère dans la liste des commandes vous suffit, sans e-mail, deux filtres font le travail. Ajoutez ce code avec l’extension Code Snippets ou dans le fichier functions.php de votre thème enfant :

add_filter( 'woocommerce_register_shop_order_post_statuses', 'wycan_enregistrer_statut' );

function wycan_enregistrer_statut( $statuts ) {
    $statuts['wc-en-preparation'] = array(
        'label'                     => 'En préparation',
        'public'                    => false,
        'exclude_from_search'       => false,
        'show_in_admin_all_list'    => true,
        'show_in_admin_status_list' => true,
        'label_count'               => _n_noop( 'En préparation <span class="count">(%s)</span>', 'En préparation <span class="count">(%s)</span>' ),
    );
    return $statuts;
}

add_filter( 'wc_order_statuses', 'wycan_ajouter_statut_a_la_liste' );

function wycan_ajouter_statut_a_la_liste( $statuts ) {
    $resultat = array();
    foreach ( $statuts as $cle => $libelle ) {
        $resultat[ $cle ] = $libelle;
        if ( 'wc-processing' === $cle ) {
            $resultat['wc-en-preparation'] = 'En préparation';
        }
    }
    return $resultat;
}

Le premier filtre déclare le statut auprès de WooCommerce, le second l’ajoute juste après « En cours » dans la liste déroulante de la commande. Le statut fonctionne que vos commandes soient stockées à l’ancienne ou dans les tables HPOS, car on passe par les filtres de WooCommerce lui-même.

Trois précautions :

  • Un identifiant court : wc- compris, il ne doit pas dépasser 20 caractères, la taille de la colonne qui le stocke.
  • Une commande payée : si ce statut concerne des commandes déjà réglées, déclarez-le comme tel pour que WooCommerce le traite comme « En cours » ou « Terminée » :
add_filter( 'woocommerce_order_is_paid_statuses', function ( $statuts ) {
    $statuts[] = 'en-preparation';
    return $statuts;
} );
  • Pas d’e-mail automatique : en envoyer un demande de créer une classe d’e-mail WooCommerce complète. Si vous en avez besoin, l’extension est plus rapide et plus sûre.

Un exemple concret

Une créatrice de bijoux reçoit une commande. Elle passe la commande en « En fabrication » : son client reçoit un e-mail, et le statut apparaît dans son compte. Une fois le bijou expédié, elle passe la commande en « Terminée ». Plus de messages pour demander où en est la commande, et un client qui se sent suivi.

Besoin d’un suivi de commande sur mesure ?

Statuts, e-mails, étapes de préparation, tableau de suivi pour votre atelier : on développe ce genre d’outil pour coller à votre façon de travailler.

Découvrir nos plugins sur mesure ou nous parler de votre besoin

Sommaire
À lire aussi

D’autres articles qui peuvent vous servir

Facturation électronique WooCommerce : comment mettre votre boutique en conformité

Facturation électronique WooCommerce : comment mettre votre boutique en conformité

Lire l’article →
Cookies et consentement : pourquoi une simple bannière ne suffit plus

Cookies et consentement : pourquoi une simple bannière ne suffit plus

Lire l’article →
Bouton de rétractation WooCommerce : le guide pour se conformer à l’article L221-21

Bouton de rétractation WooCommerce : le guide pour se conformer à l’article L221-21

Lire l’article →

Un projet, une question ?

Devis gratuit · Acompte remboursable · Solde si satisfait · Sans engagement