Comment changer automatiquement le statut de la commande dans WooCommerce
Publié: 2021-07-31Voulez-vous mettre à jour le statut de la commande dans votre magasin ? Vous êtes arrivé au bon endroit. Dans ce guide, nous vous montrerons comment modifier automatiquement le statut de la commande dans WooCommerce à l'aide de certains scripts PHP. Ne vous inquiétez pas si vous n'avez pas de compétences avancées en codage, nous vous expliquerons chaque script en détail.
WooCommerce offre de nombreuses fonctionnalités aux développeurs, donc si vous avez des compétences en codage, vous pouvez effectuer toutes sortes de personnalisations et améliorer votre boutique de commerce électronique. Dans le didacticiel suivant, vous apprendrez tout ce que vous devez savoir sur l'état de la commande. Il s'agit d'une fonctionnalité WooCommerce qui peut être très utile lors de la gestion d'un grand nombre de commandes. Cela sera particulièrement utile sur la liste des commandes backend, où les responsables de magasin peuvent facilement rechercher et prendre certaines mesures sur les commandes avec un statut spécifique.
Sans plus tarder, sautons dedans.
Quel est le statut de la commande dans WooCommerce ?
Le statut de la commande est simplement une balise qu'une commande a qui représente l'état actuel de la commande . C'est similaire à une taxonomie attachée à une publication qui décrit des informations spécifiques sur l'état actuel de cette publication. Par exemple, lorsqu'un client clique sur le bouton "Passer une commande", il passe une commande dans notre boutique. Par défaut, le statut de la commande est défini sur "Paiement en attente".
Si la boutique est intégrée à une passerelle de paiement comme PayPal ou Stripe, le statut par défaut précédent (en attente) sera validé et il passera à « En attente » ou « Échec » en fonction du résultat de la validation de la passerelle de paiement. Ensuite, si le paiement a été effectué, le statut de la commande passera automatiquement à " Traitement ", tandis que si le paiement échoue, son statut sera " Échec ".
Comme vous pouvez le voir, chacun de ces statuts nous donne des informations pertinentes sur la commande. Cette automatisation nous permet de savoir si le paiement de la commande a été effectué ou non pour livrer notre produit au client.
Statut de la commande dans WooCommerce
Voici tous les statuts de commande disponibles dans WooCommerce et la signification de chacun :
- En attente de paiement : La commande a été reçue et aucun paiement n'a été enregistré. Nous attendons le paiement
- Échec : le paiement a échoué pour une raison quelconque. Cela signifie qu'il a été rejeté de la plate-forme de paiement (c'est-à-dire PayPal) ou qu'il nécessite une authentification supplémentaire (SCA)
- Traitement : Le paiement a été reçu par la boutique, le stock du produit a été mis à jour et l'achat est dans les délais pour la livraison
- Terminé : la commande a été exécutée et terminée. C'est le dernier état d'une commande où tout s'est bien passé
- En attente : Le client n'a effectué aucun paiement, la commande nécessite donc une confirmation du responsable de la boutique
- Annulé : L'administrateur de la boutique ou l'utilisateur a annulé la commande à un moment donné. Cela ne nécessite aucune autre action, bien qu'il soit recommandé de contacter le client pour comprendre pourquoi il a annulé la commande.
- Remboursé : la commande a été remboursée, aucune autre action n'est requise
Maintenant que nous comprenons mieux ce qu'est le statut de la commande et sa fonction, voyons pourquoi il peut être judicieux de le mettre à jour.
Pourquoi changer la fonction de statut de commande par défaut ?
Chaque boutique de commerce électronique est différente et a des exigences spécifiques. Certaines boutiques en ligne peuvent ne pas utiliser du tout le statut de la commande ou ne pas les utiliser toutes. Par exemple, si les acheteurs ne peuvent pas retourner les produits, le magasin peut ne pas utiliser le statut Remboursement .
De plus, il peut arriver que la fonction de statut de commande par défaut ne soit pas suffisante et que la boutique ait besoin d'un statut personnalisé ou d'une solution automatisée pour la gestion du statut de ses commandes. Dans ces cas, la personnalisation du comportement de l'état de la commande est une excellente solution pour améliorer la gestion de la boutique. De cette façon, la boutique de commerce électronique n'aura pas besoin de mettre à jour manuellement le statut de la commande dans chaque cas.
Cela aidera les propriétaires de magasins à gagner du temps et leur permettra de se concentrer sur des choses plus importantes pour améliorer leurs activités.
Comment le statut de la commande change dans WooCommerce
À ce stade, il est important de comprendre que le statut de la commande change de manière dynamique lorsque WooCommerce est intégré à une passerelle de paiement telle que PayPal, Payoneer, Stripe, etc. Gardez à l'esprit que si vous mettez à jour le statut manuellement alors que ce n'est pas prévu, vous pouvez casser le mode de paiement présenté dans votre boutique et les clients ne pourront pas suivre le processus d'achat.
Pour mieux comprendre ce que nous allons faire, regardons comment fonctionne le flux d'état de la commande :
À partir de la documentation WooCommerce
Comme vous pouvez le voir dans le graphique ci-dessus, la première étape du statut de la commande est « En attente ». Juste après cela, la passerelle de paiement valide si l'utilisateur peut terminer le paiement et change son statut en « En attente », puis en « Traitement » lorsque le paiement est effectué avec succès. Sinon, il deviendra « Échec ».
Après cela, WooCommerce ne fera rien d'autre. Le gérant du magasin doit marquer la commande comme « Terminée » ou « Annulée ». À ce stade, il est sûr de modifier automatiquement le statut de la commande (par programmation) même si une passerelle de paiement est intégrée.
De plus, il est important de savoir que lorsque le statut passe à « En traitement » ou « Remboursé », le stock des produits concernés par la commande sera recalculé. La même chose se produira avec toutes les statistiques de la boutique en ligne liées à cette commande.
Maintenant que nous avons une idée claire de la façon dont le statut de la commande change, voyons comment mettre à jour le statut de la commande dans WooCommerce .
Comment changer automatiquement le statut de la commande dans WooCommerce
Jetons un coup d'œil à quelques exemples de scripts pour modifier le statut de la commande par programme dans WooCommerce .
REMARQUE : Nous allons modifier certains fichiers de base. Par conséquent, avant de commencer, assurez-vous d'effectuer une sauvegarde complète de votre site. De plus, créez un thème enfant ou utilisez l'un de ces plugins si vous n'en avez pas encore, afin de conserver vos personnalisations même après la mise à jour de votre thème.
Modifier tous les statuts de commande après l'achat
Si votre boutique de commerce électronique n'est intégrée à aucune passerelle de paiement utilisant le statut de la commande, vous pouvez mettre toutes les commandes en attente juste après que le client a passé une commande, au lieu de la laisser en "Traitement". Regardons ce script :
function QuadLayers_change_order_status( $order_id ) { si ( ! $order_id ) {retour ;} $order = wc_get_order( $order_id ); if( 'processing'== $order->get_status() ) { $order->update_status( 'wc-on-hold' ); } } add_action('woocommerce_thankyou','QuadLayers_change_order_status');
Nous utilisons le crochet woocommerce_thankyou
pour déclencher notre fonction juste après qu'une commande a été passée, et changeons le statut en utilisant update_status()
.
Comme vous pouvez le voir, le slug d'état a un préfixe (WC). Même si la fonction fonctionne également sans le préfixe, il est recommandé de l'utiliser.
Il convient de noter que vous pouvez utiliser n'importe quel autre statut et même des statuts personnalisés au lieu de "En attente" en ajustant le code.
Modifier le statut de la commande à partir de l'ID de commande
Le script suivant modifiera le statut d'une seule commande. Par exemple, pour modifier le statut de la commande 115, nous utilisons l'extrait de code suivant :
add_action('init',function(){ $commande = new WC_Order(115); $order->update_status('wc-processing'); });
Il s'agit d'un script court, nous avons donc utilisé une fonction anonyme dans le crochet WordPress 'init'
.
Notez que cela ne vous permettra pas d'apporter d'autres modifications au statut pendant que le script est activé.
Mettre à jour le statut de la commande WooCommerce pour les clients qui reviennent
Ceci est un autre exemple intéressant pour changer automatiquement le statut de la commande dans WooCommerce. Le script ci-dessous changera le statut de la commande en "Terminé" uniquement si l'utilisateur a une commande précédente jointe avec le statut "Terminé" ou "Traitement".
function QuadLayers_order_status_returning( $order_id ) { // Récupérer les commandes de ce client $user_id = wp_get_current_user(); $customer_orders = [] ; foreach ( wc_get_is_paid_statuses() as $paid_status ) { $customer_orders += wc_get_orders( [ 'type' => 'shop_order', 'limite' => - 1, 'customer_id' => $user_id->ID, 'status' => $payé_status, ] ); } # commande précédente existe si(count($customer_orders)>0){ si ( ! $order_id ) {retour ;} $order = wc_get_order( $order_id ); if( 'processing'== $order->get_status() ) { $commande->update_status( 'wc-completed' ); } } } add_action( 'woocommerce_thankyou', 'QuadLayers_order_status_returning' );
Cela peut être une bonne idée pour ajouter une couche de sécurité et améliorer l'expérience d'achat des clients qui reviennent.
Modifier le statut de la commande sur un paramètre d'URL
Cet exemple de script passera à un statut de commande spécifique lorsque le paramètre URL est présent sur le navigateur. Comme nous utilisons le hook init
WordPress, le script fonctionnera sur n'importe quelle page du magasin.
De plus, il modifiera le statut de la commande pour la dernière commande de l'utilisateur actuellement connecté. Dans cet exemple, le statut de la commande passera à "Annulé" lorsqu'une URL a le paramètre "revert" comme ceci : https://website.com/shop?st=revert
add_action('init',function(){ if(isset($_GET['st'])&&!empty($_GET['st']) ): $get_url = $_GET['st'] ; if($get_url=='revert'): $user_id = wp_get_current_user(); $order = wc_get_customer_last_order($user_id->ID); $commande->update_status( 'wc-cancelled' ); fin si; fin si; });
Créer un statut de commande personnalisé
Au lieu de changer le statut d'une commande, dans cet exemple, nous allons créer un nouveau statut de commande personnalisé que nous pouvons utiliser librement. C'est une bonne idée si les statuts existants ne suffisent pas ou si vous préférez en créer un nouveau pour plus de clarté. Une fois que vous avez créé un statut de commande personnalisé, vous pouvez l'utiliser avec n'importe lequel des scripts ci-dessus.
Le script suivant enregistrera et ajoutera un nouveau statut à la liste des statuts de la commande. Dans ce cas, nous appellerons le nouveau statut de commande personnalisée "En cours ", mais vous pouvez utiliser le nom de votre choix en personnalisant simplement le code.
// Enregistrer un nouveau statut fonction register_in_progress_order_status() { register_post_status( 'wc-in-progress', array( 'étiquette' => 'En cours', 'public' => vrai, 'show_in_admin_status_list' => vrai, 'show_in_admin_all_list' => vrai, 'exclude_from_search' => faux, 'label_count' => _n_noop( 'En cours (%s) ', 'En cours (%s) ' ) ) ); } // Ajouter un statut personnalisé à la liste des statuts de la commande function add_in_progress_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-in-progress'] = 'En cours'; } } retourne $new_order_statuses ; } add_action( 'init', 'register_in_progress_order_status' ); add_filter( 'wc_order_statuses', 'add_in_progress_to_order_statuses' );
Autres façons de modifier le statut de la commande WooCommerce
Si vous recherchez d'autres moyens de mettre à jour le statut de la commande par défaut dans WooCommerce, vous pouvez consulter certains plugins. Malheureusement, il n'y a pas beaucoup d'outils gratuits pour cela, mais voici quelques-uns des meilleurs :
- YITH Custom Order Status : Un excellent outil pour gérer les statuts des commandes et en créer des personnalisés. C'est l'un des meilleurs outils du marché, mais ce n'est pas bon marché. Il vous coûtera 79,99€ par an.
- WooCommerce Order Status Manager : Un autre excellent plugin pour ajouter, supprimer et modifier le statut de la commande. Vous pouvez également déclencher des e-mails en fonction du statut des commandes. Il en coûte 49 USD par an.
- Statut de commande personnalisé pour WooCommerce : L'un des meilleurs outils pour gérer le statut de la commande dans WooCommerce. C'est un plugin premium qui commence à 39 USD par an.
- Ni WooCommerce Custom Order Status : L'un des rares plugins gratuits fiables qui vous permet de gérer facilement l'état de votre commande.
Comment voir l'état de la commande dans votre boutique WooCommerce
Le moyen le plus simple de voir l'état de la commande dans votre boutique est d'ouvrir votre tableau de bord WooCommerce et d'accéder à Commandes. Ensuite, ouvrez n'importe quelle commande, et sous la section Général , appuyez sur le menu déroulant Statut. Vous y verrez toutes les commandes de votre magasin.
Conclusion
En résumé, le statut de la commande est une balise qui représente l'état actuel d'une commande. Même si WooCommerce inclut certains statuts par défaut, les personnaliser peut être une bonne idée pour ceux qui souhaitent en supprimer ou en ajouter de nouveaux. Cela peut également être une solution intéressante pour les entreprises qui ont besoin d'une solution automatisée pour la gestion de l'état de leurs commandes.
Dans ce guide, nous avons vu tous les statuts de commande par défaut et différents exemples pour modifier automatiquement le statut de la commande dans WooCommerce. Ce ne sont que quelques idées, mais vous pouvez faire beaucoup plus. Nous vous recommandons de prendre ces scripts comme base et de jouer pour les personnaliser pour votre magasin.
Pour plus d'informations sur la personnalisation de votre boutique, consultez ces tutoriels :
- Comment appliquer automatiquement les coupons WooCommerce
- Modifier la page de remerciement WooCommerce par programme
- Comment personnaliser le formulaire d'inscription WooCommerce
- 3 méthodes pour tester les commandes WooCommerce
- Comment ajouter des filtres de produits WooCommerce AJAX
Avez-vous mis à jour le statut de la commande dans votre magasin ? Avez-vous eu des problèmes pour suivre ce guide ? Faites-nous savoir dans les commentaires ci-dessous!