Comment ajouter un nouveau statut de commande avec Woocommerce ?

Woocommerce propose nativement des statues de commandes, comme par exemple : “En cours, terminer, annuler” etc.


Cependant vous allez peut-être avoir besoin de créer un nouveau statut de commande en fonction des besoins de votre site.

 

Il existe de nombreux modules gratuits comme payant pour faire cela, mais si vous ne voulez pas ajouter encore un module sur votre WordPress, j’ai la solution pour vous.

 

Ajoutez le code ci-dessous dans votre fichier functions.php de votre thème enfant

				
					function register_litiges_order_status() {

    register_post_status( 'wc-litiges-shipment', array(

        'label'                     => 'Litiges',

        'public'                    => true,

        'show_in_admin_status_list' => true,

        'show_in_admin_all_list'    => true,

        'exclude_from_search'       => false,

        'label_count'               => _n_noop( 'Litiges <span class="count">(%s)</span>', 'Litiges <span class="count">(%s)</span>' )

    ) );

}

add_action( 'init', 'register_litiges_order_status' );

function add_litiges_to_order_statuses( $order_statuses ) {

    $new_order_statuses = array();

    foreach ( $order_statuses as $key => $status ) {

        $new_order_statuses[ $key ] = $status;

        if ( 'wc-processing' === $key ) {

            $new_order_statuses['wc-litiges-shipment'] = 'Litiges';

        }

    }

    return $new_order_statuses;

}

add_filter( 'wc_order_statuses', 'add_litiges_to_order_statuses' );
				
			

Détaillons un peu ce code

Pour cet exemple, nous allons créer un statut supplémentaire, qui va s’appeler : Litige

Dans cette partie, nous pouvons voir que nous enregistrons la fonction :

				
					function register_litiges_order_status() {

   
				
			

Puis nous attribuons le label, qui sera “Litiges” avec plusieurs variables de visibilités.

				
					register_post_status( 'wc-litiges-shipment', array(

        'label'                     => 'Litiges',

        'public'                    => true,

        'show_in_admin_status_list' => true,

        'show_in_admin_all_list'    => true,

        'exclude_from_search'       => false,

        'label_count'               => _n_noop( 'Litiges <span class="count">(%s)</span>', 'Litiges <span class="count">(%s)</span>' )

    ) );

}
				
			

Et pour finir, nous ce nouveau statut directement dans la partie des commandes.

				
					add_action( 'init', 'register_litiges_order_status' );

function add_litiges_to_order_statuses( $order_statuses ) {

    $new_order_statuses = array();

    foreach ( $order_statuses as $key => $status ) {

        $new_order_statuses[ $key ] = $status;

        if ( 'wc-processing' === $key ) {

            $new_order_statuses['wc-litiges-shipment'] = 'Litiges';

        }

    }

    return $new_order_statuses;

}

add_filter( 'wc_order_statuses', 'add_litiges_to_order_statuses' );
				
			

Testé sur WordPress 6.1.1 et Woocommerce 7.2.2

Un nouveau projet WordPress ? Besoin d’aide ?

Contactez-moi ou visitez mon site et je me ferais un plaisir de vous aider. 

Dire merci, c'est bien aussi.

Partagez cet article

0
Nous aimerions avoir votre avis, veuillez laisser un commentaire.x

Vous avez une question ?

Vous avez une question sur un article ?
Découvert un bug inexpliqué ? 😱
Ou vous avez des articles à me soumettre ? 🤔
N’hésitez pas à me contacter, je serais ravi de vous aider.

Parce que chaque projet est unique !

Pour une meilleure compréhension, merci de décrire au maximum votre projet, vos besoins, vos attentes…
Vous préférez en parler au téléphone, n’hésitez pas, je suis à votre écoute : 06 35 31 45 64

Tes modifications ont bien été sauvegardées

Bravo !

Vous êtes maintenant inscrit.

Votre réponse a bien été publiée

Votre demande a bien été envoyé, merci.

Le délai de réponse peut varier de 24h à 48h.
Merci de votre compréhension

J'ai besoin d'aide pour mon projet !

Sujet :
Comment ajouter un nouveau statut de commande avec Woocommerce ?