Comment approuver automatiquement les commandes dans WooCommerce
Publié: 2020-09-25Si vous exploitez une boutique de commerce électronique, vous savez que le site nécessite un suivi et une gestion des commandes. Cependant, cela peut être un travail ardu pour l'administrateur, surtout si votre boutique en ligne génère un trafic élevé, ce qui entraîne un grand nombre de commandes en une journée.
De plus, vous savez qu'une commande est créée dès que le processus de paiement est terminé. Une commande se voit attribuer un statut en fonction de son emplacement dans la chaîne de paiement à la livraison.
De plus, les statuts sont définis ou modifiés par WooCommerce, la passerelle de paiement et l'administrateur du magasin en fonction de l'endroit où la commande est initiée.
Une fois le paiement d'une commande terminé si l'utilisateur n'a pas sélectionné l'option Paiement à la livraison. Lorsqu'une commande est terminée, son statut est défini sur "Traitement" jusqu'à ce que le propriétaire du magasin la modifie manuellement en "Terminé". Ce sera une tâche ardue pour le propriétaire du magasin ou l'administrateur.
Approuver automatiquement les commandes WooCommerce
Dans ce bref tutoriel, je partagerai avec vous un code PHP personnalisé qui vous aidera à définir automatiquement le statut de la commande comme Terminé chaque fois qu'un paiement a été effectué avec succès. Cela implique que même si l'utilisateur sélectionne l'option Paiement à la livraison, le statut de la commande passera automatiquement à Terminé.
De plus, je partagerai également avec vous une solution qui définira automatiquement le statut de la commande WooCommerce sur Terminé pour les produits virtuels. Ces produits ne sont ni tangibles ni téléchargeables.
En effet, la souscription d'une adhésion peut ne pas avoir de forme tangible mais plutôt une date d'expiration. Si vous traitez des produits téléchargeables, l'option Paiement à la livraison ne doit pas être incluse, mais à la place, seule une condition doit être ajoutée pour vérifier si tous les produits de la commande sont virtuels.
Maintenant que vous savez comment les statuts de commande sont définis, voici un guide détaillé sur la façon de :
- Définissez automatiquement le statut de la commande WooCommerce sur Terminé en fonction du mode de paiement.
- Définissez automatiquement le statut de la commande WooCommerce sur Terminé pour les produits virtuels.
a) Étapes pour définir automatiquement le statut de la commande WooCommerce comme terminé en fonction du mode de paiement
Voici les étapes simples que vous devez suivre :
- Connectez-vous à votre site WordPress et accédez au tableau de bord en tant qu'utilisateur administrateur.
- 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 où nous ajouterons la fonction qui définira automatiquement le statut de la commande woocommerce comme terminé en fonction du mode de paiement.
- Ajoutez le code suivant au fichier php :
/** Extrait pour définir automatiquement le statut de la commande woocommerce comme terminé en fonction du mode de paiement */ add_action('woocommerce_order_status_changed', 'njengah_auto_complete_by_payment_method'); fonction njengah_auto_complete_by_payment_method($order_id) { si ( ! $id_commande ) { retourner; } $produit global ; $order = wc_get_order( $order_id ); if ($order->data['status'] == 'processing') { $payment_method=$order->get_payment_method(); si ($payment_method!="bacs") { $commande->update_status( 'terminé' ); } } }
- Pour voir le résultat, rendez-vous sur le tableau de bord WordPress et cliquez sur WooCommerce > Commandes . Vous verrez que la commande a été définie sur Terminée comme indiqué ci-dessous :
Comment fonctionne le code
Dans le code ci-dessus, j'ai utilisé le crochet woocommerce_order_status_changed pour appeler une fonction lorsque le statut d'une commande est modifié. Il vérifie si la commande a le statut Traitement et le change en Terminé.
Par défaut, WooCommerce a quatre méthodes de paiement par défaut, qui sont le virement bancaire direct (bacs), les paiements par chèque (chèque), le paiement à la livraison (cod) et PayPal (PayPal). Cependant, vous devez spécifier le mode de paiement pour lequel vous définissez la condition.
b) Étapes pour définir automatiquement le statut de la commande WooCommerce comme terminé pour les produits virtuels
Voici les étapes que vous devez suivre :
- Connectez-vous à votre site WordPress et accédez au tableau de bord en tant qu'utilisateur administrateur.
- 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 où nous ajouterons la fonction qui définira automatiquement le statut de la commande woocommerce comme terminé pour les produits virtuels.
- Ajoutez le code suivant au fichier php :
/** Extrait pour définir automatiquement le statut de la commande woocommerce comme terminé pour les produits virtuels */ add_action('woocommerce_order_status_changed', 'njengah_auto_complete_virtual'); fonction njengah_auto_complete_virtual($order_id) { si ( ! $id_commande ) { retourner; } $produit global ; $order = wc_get_order( $order_id ); if ($order->data['status'] == 'processing') { $commande_virtuelle = null ; si ( count( $commande->get_items() ) > 0 ) { foreach( $commande->get_items() as $item ) { if ( 'line_item' == $item['type'] ) { $_product = $order->get_product_from_item( $item ); if ( ! $_product->is_virtual() ) { // une fois que nous avons trouvé un produit non virtuel, sortir de la boucle $commande_virtuelle = faux ; Pause; } autre { $commande_virtuelle = vrai ; } } } } // si tous sont des produits virtuels, marquer comme terminé si ( $ commande_virtuelle ) { $commande->update_status( 'terminé' ); } } }
- Le résultat sera le même que pour le premier exemple, car la commande sera automatiquement définie sur Completed .
Comment fonctionne le code
Dans le code ci-dessus, j'ai utilisé le même crochet pour appeler la fonction njengah_auto_complete_virtual. Après avoir vérifié si le est en état de traitement, le code parcourt chaque article de la commande pour voir s'il existe un produit virtuel.
Le line_item fait référence au produit, et seuls les produits doivent être récupérés un par un pour vérifier s'ils sont virtuels. S'il n'y a pas de produit virtuel, le statut de la commande ne sera pas marqué comme Terminé.
Conclusion
Dans ce bref tutoriel, j'ai expliqué comment vous pouvez définir automatiquement le statut de la commande WooCommerce sur Terminé. Je l'ai fait en fonction du mode de paiement et pour les produits virtuels.
Cependant, selon les exigences dont vous avez besoin pour votre boutique, en utilisant le premier extrait de code, vous pouvez ajouter d'autres conditions pour marquer le statut de la commande comme Terminé. Par exemple, si le paiement a été effectué, vous pouvez marquer l'état de la commande comme terminé même pour les produits non virtuels en ajoutant une vérification sur le mode de paiement après avoir vérifié s'il s'agit d'un produit virtuel.
Cependant, grâce à cet extrait de code, le statut de la commande sera défini sur Terminé uniquement si tous les produits de la commande sont des produits virtuels. J'espère que cet article a fourni une solution pour approuver automatiquement les commandes dans WooCommerce.
Articles similaires
- Comment supprimer le menu Téléchargements Page Mon compte WooCommerce
- Comment ajouter un champ supplémentaire dans le formulaire de paiement WooCommerce
- Comment désactiver l'option d'expédition à une autre adresse
- Comment obtenir des méthodes de paiement dans WooCommerce » Exemple de code
- Comment masquer le bouton Ajouter au panier dans WooCommerce
- Comment ajouter une méthode d'expédition personnalisée dans WooCommerce
- Masquer ou supprimer le champ Quantité de la page produit WooCommerce
- Comment utiliser les attributs de produit WooCommerce étape par étape [Guide complet]
- Comment afficher les produits WooCommerce par catégorie
- Comment masquer le champ du code de coupon WooCommerce
- Comment mettre le panier WooCommerce et le paiement sur une seule page
- Comment renommer les messages d'état de la commande dans WooCommerce
- Comment ajouter une image de produit à la page de paiement WooCommerce
- Comment rendre les commentaires de commande WooCommerce requis
- Comment ajouter des catégories aux produits WooCommerce
- Comment masquer tous les produits de la page de la boutique dans WooCommerce
- Comment désactiver la méthode de paiement pour une catégorie spécifique