4
25/11/2024 12:53 pm
Début du sujet
Est-il possible de changer le rôle d'un utilisateur après qu'il ait acheté un produit dans une catégorie spécifique de WooCommerce en utilisant un extrait de code dans le fichier functions.php ?
Merci de votre attention !
2 Réponses
3
25/11/2024 12:55 pm
Utilisez ce code :
function change_user_role_after_category_purchase($order_id) {
// Get the order object
$order = wc_get_order($order_id);
// Get the user ID of the customer
$user_id = $order->get_user_id();
// Define the target product category
$target_category = 'example-category'; // Replace with your category slug
// Check if the order contains products from the target category
foreach ($order->get_items() as $item_id => $item) {
$product_id = $item->get_product_id();
if (has_term($target_category, 'product_cat', $product_id)) {
// Change the user role
$user = new WP_User($user_id);
$user->set_role('new_role'); // Replace 'new_role' with your desired role slug
// Exit the loop after finding a match
break;
}
}
}
add_action('woocommerce_order_status_completed', 'change_user_role_after_category_purchase');
-
Remplacer les espaces réservés :
- Remplacer
exemple de catégorieavec l'intitulé de votre catégorie de produit cible. - Remplacer
nouveau_rôleavec le rôle que vous souhaitez attribuer (par ex,abonné,client,éditeuretc.)
- Remplacer
-
Ajouter le code :
- Accédez à votre tableau de bord WordPress.
- Aller à
Apparence > Editeur de fichier de thème. - Ouvrir le
functions.phpde votre thème actif et collez le code en bas.
-
Tester la functionalité :
- Effectuez un achat test dans la catégorie cible et assurez-vous que le rôle de l'utilisateur est mis à jour une fois que l'achat est marqué comme "terminé".
2
25/11/2024 12:57 pm
Vous pouvez également utiliser le plugin Changement automatique des rôles des utilisateurs pour WooCommerce (bien que j'aie eu un conflit avec elle) :
https://woocommerce.com/products/automatic-user-roles-switcher/
