4
25/11/2024 12:53 e m
Ämnesstart
Är det möjligt att ändra en användares roll efter att de har köpt från en specifik WooCommerce-produktkategori med hjälp av ett kodavsnitt i filen functions.php?
Tack!
2 Svar
3
25/11/2024 12:55 e m
Använd denna kod:
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');
-
Byt ut platshållarna:
- Byt ut
exempel-kategorimed sluggen för din målproduktkategori. - Byt ut
ny_rollmed den roll som du vill tilldela (t.ex.,Abonnent,kund,Redaktör, etc.).
- Byt ut
-
Lägg till koden:
- Navigera till din WordPress Dashboard.
- Gå till
Utseende > Temafilredigerare. - Öppna
functions.phpfilen i ditt aktiva tema och klistra in koden längst ner.
-
Testa functionality:
- Gör ett testköp från målkategorin och se till att användarrollen uppdateras efter att köpet har markerats som "slutfört".
2
25/11/2024 12:57 e m
Du kan också använda plugin Automatisk växling av användarroller för WooCommerce (även om jag hade en konflikt med den):
https://woocommerce.com/products/automatic-user-roles-switcher/
