Como posso alterar a função de um utilizador'depois de comprar numa categoria específica do WooCommerce (utilizando functions.php)?

  

4
Início do tópico

É possível alterar a função de um utilizador depois de este efetuar uma compra numa categoria de produtos específica do WooCommerce utilizando um fragmento de código no ficheiro functions.php?

Obrigado!

2 Respostas
3

Utilizar este código:

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');
  • Substituir os marcadores de posição:

    • Substituir exemplo-categoria com o slug da sua categoria de produto alvo.
    • Substituir nova_função com a função que pretende atribuir (por exemplo, assinante, cliente, editor, etc.).
  • Adicionar o código:

    • Navegue até ao seu Painel de Controlo WordPress.
    • Ir para Aparência > Editor de ficheiros do tema.
    • Abrir o functions.php do seu tema ativo e cole o código na parte inferior.
  • Testar o functionality:

    • Faça uma compra de teste na categoria de destino e certifique-se de que a função de utilizador é actualizada depois de a compra ser marcada como "Concluída".
2

Também pode utilizar o plugin Comutador automático de funções de utilizador para WooCommerce (embora eu tenha tido um conflito com ele):

https://woocommerce.com/products/automatic-user-roles-switcher/

Partilhar: