A quanti di voi è mai capitato di cambiare il ruolo dei singoli utenti in WordPress?
L’altro giorno mi sono imbattuto in questa pratica, ma avevo delle esigenze particolari. Mi serviva che, nel momento in cui veniva cambiato il ruolo dell’utente, fosse avvisato tramite email di questo cambio.

Per fare ciò possiamo utilizzare queste 2 varianti di codice.
La prima permette di inviare la mail senza nessuna condizione.
Ciò vuol dire che l’utente, che sia sottoscrittore, collaboratore, autore, editore, amministratore verrà avvisato ogni volta che cambierete il suo stato.
Inserite questo codice all’interno del file functions.php:
// SERVE PER INVIARE LA MAIL ALL'UTENTE QUANDO LO STATO VIENE CAMBIATO
function user_role_update($user_id, $new_role) {
$site_url = get_bloginfo(wpurl);
$user_info = get_userdata($user_id);
$to = $user_info->user_email;
$subject = "Account attivato con con successo";
$message = "Ciao " . $user_info->display_name . " Il tuo ruolo è stato cambiato su " . $site_url . ", complimenti ora sei " . $new_role; //POTETE CAMBIARE LE PAROLE IN BASE A COME VOLETE LA FRASE
wp_mail($to, $subject, $message);
}
add_action(set_user_role, user_role_update, 10, 2);
Nel caso invece volessimo mandare la mail solo a certi ruoli non vi basta che fare cosi; Inserite questo codice all’interno del file functions.php:
// SERVE PER INVIARE LA MAIL ALL'UTENTE QUANDO LO STATO VIENE CAMBIATO
function user_role_update($user_id, $new_role) {
//INSERITE IL RUOLO DELL UTENTE DESIDERATO
if ($new_role == customer) {
$site_url = get_bloginfo(wpurl);
$user_info = get_userdata($user_id);
$to = $user_info->user_email;
$subject = "Account attivato con con successo";
$message = "Ciao " .$user_info->display_name . " Il tuo ruolo è stato cambiato su ".$site_url.", complimenti ora sei " . $new_role; //POTETE CAMBIARE LE PAROLE IN BASE A COME VOLETE LA FRASE
wp_mail($to, $subject, $message);
}
}
add_action( set_user_role, user_role_update, 10, 2);
Nel caso vogliate inserire nella condizione un ruolo diverso ecco la lista:
if ($new_role == administrator) //per amministratore if ($new_role == contributor) //per collaboratore if ($new_role == subscriber) //per sottoscrittore if ($new_role == author) //per autore if ($new_role == editor) //per editore
Qualche dubbio o suggerimento? Alla prossima

