Wie kann ich die Rolle eines Benutzers nach dem Kauf in einer bestimmten WooCommerce-Kategorie ändern (mit functions.php)?

  

4
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

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-Kategorie mit dem Slug Ihrer Zielproduktkategorie.
    • Ersetzen Sie neue_Rolle mit der Rolle, die Sie zuweisen möchten (z.B., Teilnehmer, Kunde, Herausgeber, usw.).
  • Fügen Sie den Code ein:

    • Navigieren Sie zu Ihrem WordPress Dashboard.
    • Gehe zu Erscheinungsbild > Editor für Themendateien.
    • Öffnen Sie die functions.php Datei 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

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/

Teilen: