Comment approuver automatiquement les commandes dans WooCommerce

Publié: 2020-09-25

Approuver automatiquement les commandes WooCommerce Si 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 :

  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 où nous ajouterons la fonction qui définira automatiquement le statut de la commande woocommerce comme terminé en fonction du mode de paiement.
  3. 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é' );

}

}

}
  1. 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 : commande approuvée

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

produit téléchargeable : Auto Approve Orders WooCommerce 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 où nous ajouterons la fonction qui définira automatiquement le statut de la commande woocommerce comme terminé pour les produits virtuels.
  3. 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é' );

}

}

}

  1. 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