Come posso modificare il template email per i nuovi utenti
Quando aggiungo un nuovo cliente, l'email viene inviata al nuovo utente in questo formato:
From: WordPress [wordpress@siteurl.com]
Subject: [site name] Il tuo nome utente e password
Message:
username: utente
Password: password
siteurl.com/wp-login.php
Ora voglio modificare questo formato in questo modo:
From: Nome Mio Sito [info@siteurl.com]
Subject: siteurl.com account cliente attivato
Message:
Il tuo account cliente è stato attivato.
Le tue credenziali di accesso sono:
Username: email utente
Password: password
Grazie,
abcd
Ho provato questa risposta ma non funziona.
Come posso fare?
Per gli utenti dal 2018 in poi:
La risposta di David Gard funziona ancora ma è datata e ora esiste un modo migliore/pulito per farlo (non c'è più bisogno di un plugin).
A partire da WordPress 4.9.0 sono disponibili nuovi filtri per personalizzare le email di registrazione:
- wp_new_user_notification_email - personalizza l'email inviata all'Utente
- wp_new_user_notification_email_admin - personalizza l'email inviata all'Amministratore
Esempio di utilizzo per l'email inviata all'Amministratore (puoi incollare questo nel file functions.php del tuo tema):
add_filter( 'wp_new_user_notification_email_admin', 'custom_wp_new_user_notification_email', 10, 3 );
function custom_wp_new_user_notification_email( $wp_new_user_notification_email, $user, $blogname ) {
$wp_new_user_notification_email['subject'] = sprintf( '[%s] Nuovo utente %s registrato.', $blogname, $user->user_login );
$wp_new_user_notification_email['message'] = sprintf( "%s ( %s ) si è registrato nel tuo blog %s.", $user->user_login, $user->user_email, $blogname );
return $wp_new_user_notification_email;
}

L'email di notifica per il nuovo utente viene creata e inviata dalla funzione wp_new_user_notification()
, che si trova in wp-includes/plugable.php
Non esiste un hook filter all'interno di questa funzione che permetta di manipolare l'output dell'email, tuttavia puoi ovviamente sovrascrivere qualsiasi funzione pluggable tramite un plugin.
Nota - Puoi sovrascrivere le funzioni pluggable solo da un plugin, non dal tuo tema.
Vedi qui per maggiori dettagli sulle funzioni pluggable e una lista completa di quelle disponibili - http://codex.wordpress.org/Pluggable_Functions
Questo codice creerà il plugin che verrà utilizzato al posto di quello in wp-includes/plugable.php (salvalo in un file separato in wp-content/plugins/).
Non l'ho personalizzato per te, ma questo dovrebbe darti una buona base di partenza.
<?php
/**
* Plugin Name: Email personalizzata per notifica nuovo utente
* Description: Sovrascrive la funzione pluggable 'wp_new_user_notification()' per permettere l'invio di un'email personalizzata
* Author: David Gard
* Version: 1.0
*/
if ( !function_exists('wp_new_user_notification') ) :
/**
* Pluggable - Invia le credenziali di accesso a un utente appena registrato
*
* Viene inviata anche una notifica di registrazione nuova all'email dell'amministratore.
*
* @since 2.0.0
*
* @param int $user_id ID dell'utente.
* @param string $plaintext_pass Opzionale. La password in chiaro dell'utente. Default vuoto.
*/
function wp_new_user_notification($user_id, $plaintext_pass = ''){
$user = get_userdata($user_id);
// L'opzione blogname viene escapata con esc_html quando viene salvata nel database in sanitize_option
// vogliamo invertire questo processo per il testo semplice delle email.
$blogname = wp_specialchars_decode(get_option('blogname'), ENT_QUOTES);
$message = sprintf(__('Nuova registrazione utente sul tuo sito %s:'), $blogname) . "\r\n\r\n";
$message .= sprintf(__('Username: %s'), $user->user_login) . "\r\n\r\n";
$message .= sprintf(__('Email: %s'), $user->user_email) . "\r\n";
@wp_mail(get_option('admin_email'), sprintf(__('[%s] Nuova Registrazione Utente'), $blogname), $message);
if ( empty($plaintext_pass) )
return;
$message = sprintf(__('Username: %s'), $user->user_login) . "\r\n";
$message .= sprintf(__('Password: %s'), $plaintext_pass) . "\r\n";
$message .= wp_login_url() . "\r\n";
wp_mail($user->user_email, sprintf(__('[%s] Il tuo username e password'), $blogname), $message);
}
endif;

Se ti riferisci a una configurazione multisito, questa è configurabile attraverso un template che viene impostato nel database sotto 2 sezioni:
Email di Benvenuto
e
Email di Benvenuto Utente
http://yoursite/wp-admin/network/settings.php
Puoi personalizzarla come preferisci.
