Solución:
Consulte la clase WP_User, puede usar esto para agregar y eliminar roles para un usuario.
EDITAR: Realmente debería haber proporcionado más información con esta respuesta inicialmente, así que agregaré más información a continuación.
Más específicamente, el rol de un usuario se puede establecer creando una instancia de la clase WP_user y llamando al add_role()
o remove_role()
métodos.
Ejemplo
Cambiar la función de un suscriptor a editor
// NOTE: Of course change 3 to the appropriate user ID
$u = new WP_User( 3 );
// Remove role
$u->remove_role( 'subscriber' );
// Add role
$u->add_role( 'editor' );
Con suerte, eso es más útil que mi respuesta inicial, que no fue necesariamente tan útil.
Solo tenga en cuenta que hay una forma más sencilla de cambiar el rol del usuario, lo cual es especialmente útil cuando no conoce el rol actual del usuario: ->set_role()
Ejemplo:
// Fetch the WP_User object of our user.
$u = new WP_User( 3 );
// Replace the current role with 'editor' role
$u->set_role( 'editor' );
Para extrapolar la respuesta de t31os, puede agregar algo como esto en su archivo de funciones si desea hacer esto programáticamente en función de una condición
$blogusers = get_users($blogID.'&role=student');
foreach ($blogusers as $user) {
$thisYear = date('Y-7');
$gradYear = date(get_the_author_meta( 'graduation_year', $user->ID ).'-7');
if($gradYear < $thisYear) {
$u = new WP_User( $user->ID );
// Remove role
$u->remove_role( 'student' );
// Add role
$u->add_role( 'adult' );
}
}