Hur kan jag ändra en användares'roll efter att ha köpt från en specifik WooCommerce-kategori (med functions.php)?

  

4
Ä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

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-kategori med sluggen för din målproduktkategori.
    • Byt ut ny_roll med den roll som du vill tilldela (t.ex., Abonnent, kund, Redaktör, etc.).
  • Lägg till koden:

    • Navigera till din WordPress Dashboard.
    • Gå till Utseende > Temafilredigerare.
    • Öppna functions.php filen 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

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/

Dela: