Automatiser la modification du rôle de l’utilisateur après une commande WooCommerce

Automatiser la modification du rôle de l'utilisateur après une commande WooCommerce

Lorsqu’un client passe une commande sur une boutique en ligne WooCommerce, il peut être intéressant de lui attribuer un rôle différent une fois que sa commande a été traitée ou finalisée. Cela peut être utile, par exemple, si vous souhaitez offrir des privilèges supplémentaires aux clients fidèles ou si vous souhaitez accorder des droits spéciaux à ceux qui ont effectué un achat récent. Dans cet article, nous allons explorer un code qui permet de modifier automatiquement le rôle d’un utilisateur après qu’il ait passé une commande.

 

Le code suivant doit être ajouté à votre thème enfant WordPress ou à un plugin personnalisé. Il utilise les actions fournies par WooCommerce pour détecter quand une commande atteint l’état “Processing” (en cours de traitement) ou “Completed” (terminée) :

				
					add_action( 'woocommerce_order_status_processing', 'change_role_on_purchase', 10, 2 );
add_action( 'woocommerce_order_status_completed', 'change_role_on_purchase', 10, 2 );
function change_role_on_purchase( $order_id, $order ) {
    $user = $order->get_user(); // Obtient l'objet WP_User

    // Vérifie uniquement les rôles "customer"
    if( is_a( $user, 'WP_User' ) && in_array( 'customer', (array) $user->roles ) ) {
        // Supprime le rôle WooCommerce "customer"
        $user->remove_role( 'customer' ); 

        // Ajoute un nouveau rôle
        $user->add_role( 'editor' );
    }
}

				
			

Explication

Dans ce code, nous utilisons la fonction add_action pour attacher nos fonctions à deux actions spécifiques de WooCommerce : woocommerce_order_status_processing (commande en cours de traitement) et woocommerce_order_status_completed (commande terminée). À chaque fois que l’une de ces actions est déclenchée, notre fonction change_role_on_purchase est appelée.

 

La fonction change_role_on_purchase prend deux paramètres : l’identifiant de la commande ($order_id) et l’objet de la commande ($order). Nous utilisons cet objet pour obtenir l’objet WP_User associé à la commande en utilisant la méthode get_user(). Cela nous permet d’accéder aux informations de l’utilisateur lié à la commande.

 

Ensuite, nous vérifions si l’utilisateur a le rôle “customer” en utilisant la fonction is_a pour s’assurer que nous avons bien un objet de type WP_User et en utilisant in_array pour vérifier si le rôle “customer” fait partie des rôles de l’utilisateur.

 

Si l’utilisateur a le rôle “customer”, nous procédons à la modification de son rôle. Nous commençons par supprimer le rôle “customer” en utilisant la méthode remove_role de l’objet WP_User. Ensuite, nous ajoutons un nouveau rôle en utilisant la méthode add_role. Dans cet exemple, nous ajoutons le rôle “editor”, mais vous pouvez modifier cela selon vos besoins en remplaçant ‘editor’ par le rôle souhaité.

 

Une fois que vous avez ajouté ce code à votre thème ou à votre plugin personnalisé, les rôles des utilisateurs seront automatiquement modifiés après avoir passé une commande dans votre boutique WooCommerce. Les utilisateurs qui avaient le rôle “customer” se verront retirer ce rôle et se verront attribuer le nouveau rôle spécifié.

 

Cette fonctionnalité peut être extrêmement utile pour personnaliser l’expérience utilisateur sur votre boutique en ligne. Par exemple, vous pouvez accorder des privilèges spéciaux aux clients fidèles en leur donnant un accès exclusif à du contenu premium, à des offres spéciales ou à des fonctionnalités avancées. De cette façon, vous pouvez encourager la fidélité et récompenser vos clients réguliers.

 

De plus, en modifiant automatiquement le rôle des utilisateurs après une commande, vous pouvez automatiser certaines tâches administratives. Par exemple, si vous souhaitez que les clients qui ont récemment passé une commande aient des droits d’édition sur votre site, vous pouvez leur attribuer automatiquement le rôle d’éditeur. Cela leur permettra de contribuer à votre contenu sans que vous ayez à le faire manuellement pour chaque utilisateur.

 

Il est important de noter que ce code peut être personnalisé selon vos besoins spécifiques. Vous pouvez modifier les rôles utilisés, ajouter des conditions supplémentaires pour déterminer quels utilisateurs doivent changer de rôle, ou même effectuer des actions supplémentaires en fonction du rôle attribué. Assurez-vous de tester soigneusement le code sur un environnement de développement avant de l’implémenter sur votre site en production.

Conclusion

En conclusion, grâce au code fourni dans cet article, vous pouvez automatiser la modification du rôle des utilisateurs après qu’ils aient passé une commande sur votre boutique WooCommerce. Cela vous permet de personnaliser l’expérience utilisateur, de récompenser la fidélité des clients et de simplifier certaines tâches administratives.

 

N’oubliez pas que la personnalisation de votre boutique en ligne peut avoir un impact significatif sur l’expérience de vos clients. Assurez-vous de bien planifier vos modifications, de les tester attentivement et d’offrir un support adéquat à vos utilisateurs. 

 

Nous espérons que cet article vous a été utile et que vous pourrez tirer parti de cette fonctionnalité pour améliorer votre boutique WooCommerce.

Testé sur WordPress 6.2 & Woocommerce 7.7.0


Un nouveau projet WordPress ? Besoin d’aide ?

Contactez-moi ou visitez mon site et je me ferais un plaisir de vous aider. 

Un nouveau projet web ?

Un nouveau site vitrine ou e-commerce ?
Ou même vous souhaitez faire la refonte de votre site ?

Dire merci, c'est bien aussi.

Partagez cet article

0
Nous aimerions avoir votre avis, veuillez laisser un commentaire.x

Vous avez une question ?

Vous avez une question sur un article ?
Découvert un bug inexpliqué ? 😱
Ou vous avez des articles à me soumettre ? 🤔
N’hésitez pas à me contacter, je serais ravi de vous aider.

Parce que chaque projet est unique !

Pour une meilleure compréhension, merci de décrire au maximum votre projet, vos besoins, vos attentes…
Vous préférez en parler au téléphone, n’hésitez pas, je suis à votre écoute : 06 35 31 45 64

Tes modifications ont bien été sauvegardées

Bravo !

Vous êtes maintenant inscrit.

Votre réponse a bien été publiée

Votre demande a bien été envoyé, merci.

Le délai de réponse peut varier de 24h à 48h.
Merci de votre compréhension

J'ai besoin d'aide pour mon projet !

Sujet :
Automatiser la modification du rôle de l’utilisateur après une commande WooCommerce