4
25/11/2024 12:53 pm
Inicio del tema
¿Es posible cambiar el rol de un usuario después de que compre en una categoría de producto específica de WooCommerce utilizando un fragmento de código en el archivo functions.php?
Gracias.
2 respuestas
3
25/11/2024 12:55 pm
Usa 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');
-
Sustituya los marcadores de posición:
- Sustituir
ejemplo-categoría
con el slug de su categoría de producto objetivo. - Sustituir
nuevo_papel
con la función que desea asignar (por ejemplo,abonado
,cliente
,editor
etc.).
- Sustituir
-
Añade el código:
- Navegue hasta el panel de control de su WordPress.
- Ir a
Apariencia > Editor de archivos de temas
. - Abra el
functions.php
de su tema activo y pegue el código en la parte inferior.
-
Prueba la functionalidad:
- Realice una compra de prueba en la categoría de destino y asegúrese de que el rol de usuario se actualiza después de que la compra se marque como "Completada".
2
25/11/2024 12:57 pm
También puede utilizar el plugin Cambiador automático de roles de usuario para WooCommerce (aunque tuve un conflicto con él):
https://woocommerce.com/products/automatic-user-roles-switcher/