
Cambiar el rol de un usuario en WooCommerce si realiza una compra mayor
En este artículo, aprenderás a cambiar automáticamente el rol de un usuario en WooCommerce si realiza una compra superior a un monto específico. Para este ejemplo, crearemos un nuevo rol llamado «Vip User» y asignaremos este rol a los usuarios que cumplan con el criterio.
Crear el rol «Vip User»
Antes de cambiar el rol de los usuarios, debemos asegurarnos de que el rol «Vip User» exista. Para ello, podemos añadir el siguiente código en el archivo functions.php
de nuestro tema o en un plugin personalizado:
<?php function create_vip_user_role() { add_role( 'vip_user', 'Vip User', [ 'read' => true, 'edit_posts' => false, 'delete_posts' => false, ]); } add_action( 'init', 'create_vip_user_role' );
Este código define el rol «Vip User» con permisos básicos de lectura.
Cambiar el rol de usuario después de una compra
Para asignar el rol «Vip User» a un comprador que supere un monto específico, podemos usar el siguiente snippet:
<?php function change_user_role_on_high_purchase( $order_id ) { // Obtener el pedido $order = wc_get_order( $order_id ); if ( ! $order ) { return; } // Obtener el usuario $user_id = $order->get_user_id(); if ( ! $user_id ) { return; } // Definir el monto mínimo para ser VIP $min_vip_amount = 100; // Cambia esto al monto deseado // Obtener el total de la orden $order_total = $order->get_total(); // Verificar si el total supera el mínimo if ( $order_total >= $min_vip_amount ) { $user = new WP_User( $user_id ); // Asignar el nuevo rol y eliminar el anterior $user->set_role( 'vip_user' ); } } add_action( 'woocommerce_thankyou', 'change_user_role_on_high_purchase' );
- Obtenemos el objeto del pedido con
wc_get_order( $order_id )
. - Extraemos el
user_id
del comprador. - Definimos un monto mínimo de compra para ser considerado «Vip User».
- Comparamos el total de la compra con el monto mínimo.
- Si el monto es igual o superior, asignamos el rol «Vip User» al usuario.
Probando el código
Para verificar que el cambio de rol funciona correctamente:
- Realiza una compra con un usuario de prueba.
- Asegúrate de que el total de la compra supere el monto definido.
- Revisa en Usuarios > Todos los usuarios dentro de WordPress si el rol ha cambiado a «Vip User».
Con este método, puedes implementar fácilmente un sistema de membresía VIP basado en compras en tu tienda WooCommerce.