Detectar cambio de role de usuario en WordPress
Al cambiar el role de un usuario en wordpress se dispara un evento llamado set_user_role. Con la función add_action podemos asociar en nuestro functions.php una función a este evento. Esta función recibirá el id del usuario que ha cambiado de rol y el tag del nuevo rol. Hay un tercer parámetro opcional en la función que es un Array con los anteriores roles del usuario (a partir de la versión 3.6 de WordPress). El snippet sería:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
/* Notificación para cambio de role en usuario */ function user_role_update( $user_id, $new_role ) { /* Aquí podemos gestionar el cambio de rol,como por ejemplo avisar al usuario si le hemos hecho administrador: */ if ($new_role == 'administrator') { $user_info = get_userdata( $user_id ); $to = $user_info->user_email; $subject = "Ahora eres administrador"; $message = '<html><body>'; $message .= "<p>Tu solicitud para ser administrador ha sido aprobada.</p>"; $message .= "</body></html>"; $headers = array('Content-Type: text/html; charset=UTF-8'); wp_mail( $to, $subject, $message, $headers ); } } add_action( 'set_user_role', 'user_role_update', 10, 2); |