¿Cómo puedo cambiar el rol de un usuario'después de comprar en una categoría específica de WooCommerce (usando functions.php)?

  

4
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

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, editoretc.).
  • 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

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/

Compartir: