Comment masquer le statut de la commande dans WooCommerce

Publié: 2020-11-12

WooCommerce Masquer le statut de la commande Voulez-vous masquer les statuts des commandes principales dans votre boutique WooCommerce ? Récemment, un client m'a demandé de masquer certains statuts de commande dans sa boutique WooCommerce. Dans cet article, vous verrez comment vous pouvez facilement supprimer certains statuts de commande et comment en créer des personnalisés.

WooCommerce Masquer le statut de la commande

Pour diverses raisons, vous souhaiterez peut-être masquer certains statuts de commande principaux. Cependant, la version par défaut de WooCommerce vous permet de marquer les commandes avec l'un des statuts suivants terminé, traitement, paiement en attente, en attente, remboursé, annulé ou échoué.

De nombreux plugins vous permettent de gérer les statuts des commandes, et l'un d'eux est le plugin " WooCommerce Order Status Manager " au prix de 49 $. Gestionnaire de statut de commande WooCommerce

Cela peut être une solution coûteuse pour votre magasin, mais il existe un moyen simple de le faire. Dans la version actuelle de WooCommerce, les statuts de commande sont enregistrés en tant que statut de publication personnalisé, tout comme le brouillon, programmé ou publié pour les publications.

Comment masquer le statut de la commande

Cela dit, voyons comment vous pouvez masquer le statut de la commande dans WooCommerce à l'aide d'un extrait de code. Pour vérifier les messages d'état de la commande par défaut, connectez-vous à votre site WordPress et accédez au tableau de bord en tant qu'utilisateur administrateur. Ensuite, cliquez sur WooCommerce > Commandes . Vous verrez ceci : état de la commande back-end

Ces messages sont également affichés dans le front-end lorsqu'un client essaie de passer une commande. Vous pouvez y accéder en cliquant sur Mon compte > Commandes, comme indiqué ci-dessous : frontal de l'état de la commande

Étapes pour masquer les statuts de commande de base

Il convient de mentionner que lorsque vous masquez les statuts des commandes principales, assurez-vous qu'aucun produit n'a ce statut. De plus, vous devez vous assurer que votre boutique WooCommerce n'utilise ce statut nulle part, car cela peut entraîner des erreurs. Par exemple, si vous ne prévoyez pas d'effectuer de remboursement dans votre boutique WooCommerce, vous pouvez masquer le statut de remboursement.

La raison pour laquelle nous ne pouvons pas supprimer tous les statuts de commande principaux est que les plug-ins utilisent des statuts de commande, même ceux que vous n'utilisez pas dans votre flux de travail. Les plugins comme les passerelles de paiement supposent toujours que les statuts de commande principaux sont présents. S'ils ne sont pas là, ils vont casser

Voici les étapes que vous devez suivre :

  1. Connectez-vous à votre site WordPress et accédez au tableau de bord en tant qu'utilisateur administrateur.
  2. Dans le menu Dashboard, cliquez sur Appearance Menu > Theme Editor Menu . Lorsque la page de l'éditeur de thème est ouverte, recherchez le fichier de fonctions de thème pour ajouter la fonction permettant de masquer les statuts de commande principaux dans votre boutique WooCommerce.
  3. Ajoutez le code suivant au fichier functions.php :
 /*

 * Suppression des statuts de commande de base

 * @param array $wc_statuses_arr Tableau de tous les statuts de commande sur le site Web

 */

fonction njengah_remove_order_statuses( $wc_statuses_arr ){

            // Traitement

            if( isset( $wc_statuses_arr['wc-processing'] ) ) { // si existe

                        unset( $wc_statuses_arr['wc-processing'] ); // le supprimer du tableau

            }

            // Remboursé

            if( isset( $wc_statuses_arr['wc-refunded'] ) ){

                        unset( $wc_statuses_arr['wc-refunded'] );

            }

            // En attente

            if( isset( $wc_statuses_arr['wc-on-hold'] ) ){

                        unset( $wc_statuses_arr['wc-on-hold'] );

            }

            // Manqué

            if( isset( $wc_statuses_arr['wc-failed'] ) ){

                        unset( $wc_statuses_arr['wc-failed'] );

            }

            // En attente de paiement

            if( isset( $wc_statuses_arr['wc-pending'] ) ){

                        unset( $wc_statuses_arr['wc-pending'] );

            }

            // Complété

            //if( isset( $wc_statuses_arr['wc-completed'] ) ){

            // unset( $wc_statuses_arr['wc-completed'] );

            //}

            // Annulé

            //if( isset( $wc_statuses_arr['wc-cancelled'] ) ){

            // unset( $wc_statuses_arr['wc-cancelled'] );

            //}

            retourne $wc_statuses_arr ; // renvoie les statuts des résultats

}

add_filter( 'wc_order_statuses', 'njengah_remove_order_statuses' );
  1. Voici le résultat sur le front-end : masquer les statuts des commandes
  2. Pour ajouter un statut de commande personnalisé, ajoutez le code suivant dans le fichier functions.php :
 /**

* Enregistrez un nouveau statut avec l'ID "wc-njengah-shipment" et l'étiquette "En attente d'expédition"

*/

function njengah_register_awaiting_shipment_status() {
register_post_status( 'wc-njengah-shipment', array(

'label' => 'En attente d'expédition',

'public' => vrai,

'show_in_admin_status_list' => true, // afficher le nombre Tous (12) , Terminé (9) , En attente d'expédition (2) ...

'label_count' => _n_noop( 'En attente d'expédition <span class="count">(%s)</span>', 'En attente d'expédition <span class="count">(%s)</span>' )

) );
}

add_action( 'init', 'njengah_register_awaiting_shipment_status' );

/*

* Ajouter le statut enregistré à la liste des statuts de commande WC

* @param array $wc_statuses_arr Tableau de tous les statuts de commande sur le site Web

*/

function njengah_add_status( $wc_statuses_arr ) {
$new_statuses_arr = array();

// ajouter un nouveau statut de commande après traitement

foreach ( $wc_statuses_arr as $id => $label ) {

$new_statuses_arr[ $id ] = $label;

if ( 'wc-completed' === $id ) { // après le statut "Completed"

$new_statuses_arr['wc-njengah-shipment'] = 'En attente d\'expédition' ;

}

}
retourne $new_statuses_arr ;

// si l'état de la commande n'a pas d'importance pour vous, vous pouvez supprimer les lignes 21-32 et décommenter les 35-36 suivantes

// $wc_statuses_arr['wc-njengah-shipment'] = 'En attente d'expédition' ;

// retourne $wc_statuses_arr ;
}

add_filter( 'wc_order_status', 'njengah_add_status' );
  1. Voici le résultat : ajouter un statut de commande personnalisé

Conclusion

Dans cet article, vous avez vu comment vous pouvez masquer les statuts des commandes de base. Cependant, il est important de noter que le statut de la commande que vous souhaitez supprimer n'est utilisé nulle part sur votre boutique, car cela peut entraîner des erreurs. De plus, j'ai expliqué comment ajouter un statut de commande personnalisé. Si vous n'êtes pas familiarisé avec la gestion du code, veuillez contacter un développeur WordPress qualifié.

Articles similaires