4
25/11/2024 12:53 pm
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
25/11/2024 12:55 pm
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-categoriacom o slug da sua categoria de produto alvo. - Substituir
nova_funçãocom a função que pretende atribuir (por exemplo,assinante,cliente,editor, etc.).
- Substituir
-
Adicionar o código:
- Navegue até ao seu Painel de Controlo WordPress.
- Ir para
Aparência > Editor de ficheiros do tema. - Abrir o
functions.phpdo 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
25/11/2024 12:57 pm
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/
