4
25/11/2024 12:53 p.m.
Themenstarter
Ist es möglich, die Rolle eines Benutzers zu ändern, nachdem er in einer bestimmten WooCommerce-Produktkategorie eingekauft hat, indem er einen Codeschnipsel in der Datei functions.php verwendet?
Danke!
2 Antworten
3
25/11/2024 12:55 p.m.
Verwenden Sie diesen 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');
-
Ersetzen Sie die Platzhalter:
- Ersetzen Sie
Beispiel-Kategoriemit dem Slug Ihrer Zielproduktkategorie. - Ersetzen Sie
neue_Rollemit der Rolle, die Sie zuweisen möchten (z.B.,Teilnehmer,Kunde,Herausgeber, usw.).
- Ersetzen Sie
-
Fügen Sie den Code ein:
- Navigieren Sie zu Ihrem WordPress Dashboard.
- Gehe zu
Erscheinungsbild > Editor für Themendateien. - Öffnen Sie die
functions.phpDatei Ihres aktiven Themes und fügen Sie den Code unten ein.
-
Testen Sie die functionalität:
- Führen Sie einen Testkauf in der Zielkategorie durch und stellen Sie sicher, dass die Benutzerrolle aktualisiert wird, nachdem der Kauf als "abgeschlossen" markiert wurde.
2
25/11/2024 12:57 p.m.
Sie können auch das Plugin Automatischer Benutzerrollen-Wechsler für WooCommerce (obwohl ich einen Konflikt mit ihm hatte):
https://woocommerce.com/products/automatic-user-roles-switcher/
