Email amministratore personalizzato per la registrazione di nuovi utenti
Ho cercato sul web la soluzione a questo piccolo problema, ma continuo a trovare risultati che mi spiegano come personalizzare il contenuto dell'email di notifica e non l'indirizzo email stesso.
Ho impostato l'indirizzo email dell'amministratore nelle impostazioni di WordPress come abc@xyz.tld che va bene, ma voglio che tutte le registrazioni dei nuovi utenti vengano inviate a un indirizzo email diverso.
Ad esempio:
Quando un nuovo utente si registra, l'email viene inviata a def@hij.td
Plugin, temi, ecc. necessitano di aggiornamenti, tutte le email vengono inviate SOLO a abc@xyz.tld

Sì, puoi cambiare l'indirizzo email utilizzando la funzione wp_mail. Puoi verificare come fare qui: http://www.butlerblog.com/2011/07/14/changing-the-wp_mail-from-address-with-a-plugin/
Utilizza questo plugin per la gestione degli utenti, supporta l'indirizzo email quando un nuovo utente si registra: https://wordpress.org/plugins/wp-members/
Usa questo codice nel tuo file functions.php.
function so174837_registration_email_alert( $user_id ) {
$user = get_userdata( $user_id );
$email = $user->user_email;
$message = $email . ' si è registrato al tuo sito web.';
wp_mail( 'tuaemail@esempio.com', 'Nuova registrazione utente', $message );
}
add_action('user_register', 'so174837_registration_email_alert');

Ciao Krishna,
Grazie per la tua rapida risposta. Mi stai dicendo di installare il plugin insieme al tuo script? O invece del plugin?

Non ho installato il plugin e ho solo usato lo snippet che hai inserito e sembra funzionare perfettamente.

cosa inserire nella sezione strip_tags($_POST['user_login']) ??

Sono arrivato a questo post mentre cercavo su Google una soluzione specifica per una domanda relativa alle email. La cosa divertente è che la risposta pubblicata fa riferimento a uno dei miei post sul blog e al mio plugin. È fantastico, tranne per il fatto che in questo caso non credo che risponda davvero alla domanda dell'OP.
La domanda era che tutte le notifiche all'amministratore devono andare all'indirizzo email specificato, TRANNE una: la notifica per il nuovo utente.
Il mio approccio per risolvere questo problema (supponendo che il processo fosse la registrazione nativa di WordPress) sarebbe quello di utilizzare un filtro su wp_mail() (che, tra l'altro, ha un filtro alla fine dell'intero processo).
Userei quel filtro per esaminare il contenuto del messaggio e, se si trattasse dell'email inviata per la notifica del nuovo utente, allora utilizzerei il filtro per modificare l'indirizzo "to".
In questo esempio, viene esaminato l'oggetto per verificare se contiene 'New User Registration' (Registrazione nuovo utente), che fa parte della riga dell'oggetto nell'email di notifica predefinita dell'amministratore di WordPress. Se è così, allora l'indirizzo email "to" viene modificato con quello desiderato. In tutti gli altri casi, il messaggio passa attraverso il filtro senza modifiche.
add_filter( 'wp_mail', 'my_wp_mail_filter' );
function my_wp_mail_filter( $args ) {
// Verifica l'oggetto del messaggio per una stringa nota nell'email di notifica.
if ( strpos( $args['subject'], 'New User Registration' ) ) {
// Questa è l'email di notifica, quindi cambia l'indirizzo "to".
$args['to'] = 'def@hij.td';
}
return $args;
}
