Come modificare l'email di registrazione predefinita?(plugin e / o non plugin)
3 risposta
- voti
-
- 2011-04-21
L'email delnuovo utente vieneinviata utilizzando lafunzione
wp_new_user_notification()
. Questafunzione è collegabile,il che significa chepuoi sovrascriverla:// Redefine user notification function if ( !function_exists('wp_new_user_notification') ) { function wp_new_user_notification( $user_id, $plaintext_pass = '' ) { $user = new WP_User($user_id); $user_login = stripslashes($user->user_login); $user_email = stripslashes($user->user_email); $message = sprintf(__('New user registration on your blog %s:'), get_option('blogname')) . "\r\n\r\n"; $message .= sprintf(__('Username: %s'), $user_login) . "\r\n\r\n"; $message .= sprintf(__('E-mail: %s'), $user_email) . "\r\n"; @wp_mail(get_option('admin_email'), sprintf(__('[%s] New User Registration'), get_option('blogname')), $message); if ( empty($plaintext_pass) ) return; $message = __('Hi there,') . "\r\n\r\n"; $message .= sprintf(__("Welcome to %s! Here's how to log in:"), get_option('blogname')) . "\r\n\r\n"; $message .= wp_login_url() . "\r\n"; $message .= sprintf(__('Username: %s'), $user_login) . "\r\n"; $message .= sprintf(__('Password: %s'), $plaintext_pass) . "\r\n\r\n"; $message .= sprintf(__('If you have any problems, please contact me at %s.'), get_option('admin_email')) . "\r\n\r\n"; $message .= __('Adios!'); wp_mail($user_email, sprintf(__('[%s] Your username and password'), get_option('blogname')), $message); } }
Nota: non èpossibile sovrascrivere lefunzioni collegabilinelfilefunctions.php deltema. Ilfileinseribile di WP ègià caricato a quelpunto,quindi lafunzione sarebbe definita da WP (ovvero l'impostazionepredefinita). Latua versionepersonalizzata deveessere caricata prima che ciò accada,il che significa che devi caricarlain unfileplug-inpersonalizzato.
The new user email is sent using the
wp_new_user_notification()
function. This function is pluggable, which means that you can overwrite it:// Redefine user notification function if ( !function_exists('wp_new_user_notification') ) { function wp_new_user_notification( $user_id, $plaintext_pass = '' ) { $user = new WP_User($user_id); $user_login = stripslashes($user->user_login); $user_email = stripslashes($user->user_email); $message = sprintf(__('New user registration on your blog %s:'), get_option('blogname')) . "\r\n\r\n"; $message .= sprintf(__('Username: %s'), $user_login) . "\r\n\r\n"; $message .= sprintf(__('E-mail: %s'), $user_email) . "\r\n"; @wp_mail(get_option('admin_email'), sprintf(__('[%s] New User Registration'), get_option('blogname')), $message); if ( empty($plaintext_pass) ) return; $message = __('Hi there,') . "\r\n\r\n"; $message .= sprintf(__("Welcome to %s! Here's how to log in:"), get_option('blogname')) . "\r\n\r\n"; $message .= wp_login_url() . "\r\n"; $message .= sprintf(__('Username: %s'), $user_login) . "\r\n"; $message .= sprintf(__('Password: %s'), $plaintext_pass) . "\r\n\r\n"; $message .= sprintf(__('If you have any problems, please contact me at %s.'), get_option('admin_email')) . "\r\n\r\n"; $message .= __('Adios!'); wp_mail($user_email, sprintf(__('[%s] Your username and password'), get_option('blogname')), $message); } }
Note: Overriding pluggable functions cannot be done in the theme functions.php file. WP's pluggable file is already loaded by that point so the function would be defined by WP (i.e. the default). Your custom version must load before this happens, which means you must load it in a custom plugin file.
-
@Bainternet Non riesco afarlofunzionare,l'ho aggiunto almiofile difunzioni,ma l'email standard continua ainviare.Sono supiù siti,manon dovrebbeimportare,giusto?@Bainternet I cannot seem to get this to work, I have added this to my functions file, but the standard email keeps sending. I'm on multisite, but that shouldn't matter, right?
-
OK capito ora,sembrafunzionare solo comeplugin separato,non quando lo aggiungi altuofile `functions.php`.Orafunzionaperfettamente,grazie ancoraper quelbelpezzo di codice!OK got it now, it only seems to work as a separate plugin, not when you add it to your `functions.php` file. Now it works perfect, thanks again for that nice piece of code!
-
Funziona anchepermultisito?Vedo cheilmultisito ha un sacco difunzioni all'interno dims-functions.phpper l'invio diemail dinotifica.Does it works for multisite too? I can see multisite has bunch of functions inside ms-functions.php for sending notification email.
- 0
- 2013-07-28
- Sisir
-
Ilmultisito usa "wpmu_signup_user_notification" credo.Multisite uses `wpmu_signup_user_notification` I think.
- 0
- 2014-11-25
- Wyck
-
Questa risposta è vecchia di diversi anni.La risposta accettatanonfunzionaperme.(Aggiungerlo afunctions.phpnonfa differenzapernessuna delleemailinviate quando unnuovo utente si registra.) Devopubblicare unanuova domanda?This answer is several years old. The accepted answer doesn't work for me. (Adding it to functions.php has makes no difference to any of the emails sent when a new user registers.) Should I post a new question?
- 0
- 2015-04-21
- Kit Johnson
-
Allafine hotrovato del codice che hafunzionatoperme in questotutorial: http://www.webtipblog.com/change-wordpress-user-registration-welcome-email/In the end I found some code that worked for me in this tutorial: http://www.webtipblog.com/change-wordpress-user-registration-welcome-email/
- 0
- 2015-04-24
- Kit Johnson
-
Per affrontarei commenti riguardantiilfatto chenonfunzionain functions.php,èperchénon èpossibile caricare una versionepersonalizzata di unafunzione collegabile cosìtardi.Non hanulla a chefare con la vecchia risposta.Ènecessario definire lafunzionepersonalizzataprima di caricare la versione WP.Quando viene caricatoin functions.php,la versionepredefinita delplugin ègià definita.Devi caricarlo * comeplugin * (non c'è differenzatra la risposta datae il link Kitpubblicato aparteilpassaggio aggiuntivo di caricarlo comeplugin).To address the comments regarding it not working in functions.php, that's because you can't load a custom version of a pluggable function that late. It has nothing to do with the answer being old. You must define your custom function before the WP version is loaded. When loaded in functions.php, the default version of the plugin is already defined. You have to load it *as a plugin* (there's no difference between the answer given and the link Kit posted other than the extra step of loading it as a plugin).
- 0
- 2019-12-09
- butlerblog
-
- 2018-01-03
Pergli utenti dal 2018in poi:
Da WordPress 4.9.0 ci sononuovifiltri chepuoi usareper questo (non c'èpiùbisogno di unplugin):
- wp_new_user_notification_email :personalizza l'emailinviata all'utente
- wp_new_user_notification_email_admin -personalizza l'emailinviata all'amministratore
Esempio di utilizzo dell'emailinviata all'amministratore (puoiincollare questonel functions.php deltuotema):
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] New user %s registered.', $blogname, $user->user_login ); $wp_new_user_notification_email['message'] = sprintf( "%s ( %s ) has registerd to your blog %s.", $user->user_login, $user->user_email, $blogname ); return $wp_new_user_notification_email; }
For 2018 and onwards users:
Since WordPress 4.9.0 there are new filters you can use for this (no need for a plugin anymore):
- wp_new_user_notification_email - customise email sent to User
- wp_new_user_notification_email_admin - customise email sent to Admin
Usage example on email sent to Admin (you can paste this in your theme's functions.php ):
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] New user %s registered.', $blogname, $user->user_login ); $wp_new_user_notification_email['message'] = sprintf( "%s ( %s ) has registerd to your blog %s.", $user->user_login, $user->user_email, $blogname ); return $wp_new_user_notification_email; }
-
In alternativa sipossono usarei filtri `wp_new_user_notification_email`e` wp_new_user_notification_email_admin`.Gliinteressatipossono consultare la [documentazione completae il codice sorgente] (https://developer.wordpress.org/reference/functions/wp_new_user_notification/)per `wp_new_user_notification ()`.Alternatively one could use the `wp_new_user_notification_email` and `wp_new_user_notification_email_admin` filters. Those interested can check out the [full documentation and source code](https://developer.wordpress.org/reference/functions/wp_new_user_notification/) for `wp_new_user_notification()`.
- 1
- 2018-01-10
- Pete
-
Grazie Pete,sembra che sia statointrodottonella 4.9.0e sembra una soluzionemigliore.Thanks Pete, looks like that was introduced in 4.9.0 and looks like a better solution.
- 0
- 2018-01-10
- Edu Wass
-
Ciao.Sto anche usandoilplugin WP Approve User. Almomentoinvia l'email standard quando si registrano.Non dovrebbe.Dovrebbe dire che l'account deveessere approvatoprima. Approviamo l'utente ha lapossibilità diimpostareiltestoper quando l'account è stato approvatoe funziona correttamente.Èilpassaggiopre approvatoprima. Uso questinuovifiltri che hai citato?Hi. I am also using the WP Approve User plugin. At the moment it sends the standard email when they sign up. It shouldn’t. It should say that account needs to be approved first. We Approve User has option to set the text for when the account has been approved and that is working right. It is the pre approved step before. Do I use these new filters you mentioned?
- 0
- 2019-12-08
- Andrew Truckle
-
- 2015-09-17
Questononfunzionerà sufunctions.php.Deviinserire questo codice all'interno di unplugin.
Senon vuoi creare unplug-inper questo,usa questo link .
Non dimenticare diportareil codice di aggiornamento di questafunzione da qui .
-
Solo unpunto di chiarimentobasato sull'aggiunta di hook difiltro allafunzione `wp_new_user_notification ()`.Questa rispostafa riferimento specificamente all'override di `wp_new_user_notification ()` comefunzione collegabile.Tuttavia,questo **non si applica ** all'uso deifiltri `wp_new_user_notification_email`e` wp_new_user_notification_email_admin`.Questipossonoessere usatineltuofilefunctions.php (o [unplugin specifico del sito] (https://wpbitz.com/how-to-create-a-site-specific-plugin/)).Just a point of clarification based on the addition of filter hooks to the `wp_new_user_notification()` function. This answer specifically references the overriding of `wp_new_user_notification()` as a pluggable function. However, this **does not apply** to using the `wp_new_user_notification_email` and `wp_new_user_notification_email_admin` filters. Those can be used in your functions.php file (or [a site specific plugin](https://wpbitz.com/how-to-create-a-site-specific-plugin/)).
- 0
- 2019-12-09
- butlerblog
Dopo la registrazione di unnuovo utente,WPinvia un'e-mail con login/passworde un collegamento allapagina di accesso.
Esiste unmodopermodificare questomodello diemailpredefinito?Vorrei anche cambiare oggettoe mittente.
Modifica:per chiunque siainteressato, qui è una soluzioneplug-in.