Passer automatiquement les commandes WooCommerce au statut Terminé

Publié le : 3 décembre 2024. Date de dernière mise à jour : 3 décembre 2024

 

Avec ce nouveau snippet, nous allons vous montrer comment faire en sorte que vos commandes répondant à certains critères passent directement du status “En cours” au statut “Terminé”. C’est très pratique si vous vendez uniquement des produits virtuels.

WooCommerce passe par défaut les commandes au statut “Terminé” si elle ne contiennent que des produits virtuels et téléchargeables. Cela ne fonctionne cependant pas si les produits ne sont pas marqués comme téléchargeables. Le snippet présenté ci-dessous permettra de passer les commandes au statut “Terminé” si elles ne contiennent que des produits virtuels.

1|Information

Avant d’utiliser ce snippet, assurez-vous d’avoir installé l’extension Code Snippets (gratuite) sur votre site WordPress. Si ce n’est pas le cas, vous pouvez la télécharger via le lien ci-dessous. Si vous n’avez jamais ajouté de fonctionnalité spécifique à votre site WordPress, nous vous recommandons de commencer par lire notre guide dédié (lien ci-dessous).


2|Prérequis

Voici la liste des extensions nécessaires au bon fonctionnement de ce snippet. Assurez-vous de les installer avant d’activer le snippet.

WooCommerceNécessaire pour la vente de produits virtuels sur votre site

3|Snippet

Voici le snippet à utiliser. Les commentaires à l’intérieur du code vous guideront sur le fonctionnement de ce snippet.

Assurez-vous de cocher la case “Run snippet everywhere” avant d’activer le snippet.

/** Here, we plug into the WooCommerce hook that is called when the status of an order is changed. We only do something if it was changed to processing */
\add_action('woocommerce_order_status_changed', function($orderId, $from, $to, $order)
{
    // Enusure Order data
    if ($orderId && !$order) {
        $order = \wc_get_order($orderId);
    }
    // Make sure we receive an order Id
    if (!$order) {
        return;
    }
    // only fo processing
    if ('processing' !== $to) {
        return;
    }
    foreach( $order->get_items() as $item ) {
        if ( $item['type'] == 'line_item' ) {
            $product = $order->get_product_from_item( $item );
            if ( ! $product->is_virtual() ) {
                // If there's a non virtual product
                return;
            }
        }
    }
    $order->update_status( 'completed' );  
}, PHP_INT_MAX, 4);

Nos extensions

Nous avons créé des extensions performantes et largement plébiscitées pour WooCommerce. Boostez vos ventes grâce à nos solutions

WooRewards

Découvrez l'extension de fidélité la plus puissante pour WooCommerce. Systèmes simples ou par niveaux, parrainages, réseaux sociaux, badges et succès, vous y trouverez tous les outils pour construire VOTRE programme de fidélité

En savoir plus

VIP Memberships

VIP Memberships est un outil complet de gestion d'adhésions (memberships) pour votre site WooCommerce. Vendez des abonnements à vos clients et faites les profiter d'avantages comme des prix préférentiels ou des produits exclusifs

En savoir plus

Virtual Wallet

Offrez à vos clients un portefeuille virtuel sur votre site web. Laissez-lez emmagasiner de l'argent en achetant vos produits et utiliser ce crédit lors de futurs achats. Cette extension propose aussi un outil de carte cadeaux complet

En savoir plus

Referral Codes

Gagnez de nouveaux clients grâce à cet outil complet de référencement. Que ce soit par le biais d'influenceurs ou de simples référents, récompensez les ainsi que les nouveaux clients qu'ils amènent

En savoir plus
Posted in ,

Long Watch Studio

Laissez un commentaire

Vous devez être connectés afin de publier un commentaire.