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. 

Laisser un commentaire

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

Les derniers articles

Besoin d'aide ?
Un nouveau projet ?

Publicités

Votre enseigne ici ? Contactez-moi

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

Suivez-moi

Les derniers articles

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

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

Besoin d'aide pour mon projet

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