¿Cómo cambiar el correo electrónico de registro predeterminado?(complemento y / o no complemento)
3 respuestas
- votos
-
- 2011-04-21
El correoelectrónico delnuevo usuario seenvíamediante lafunción
wp_new_user_notification()
. Estafunción sepuede conectar,lo que significa quepuede sobrescribirla:// 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: No sepueden anular lasfunciones conectablesen el archivofunctions.php deltema. El archivo conectable de WP yaestá cargadoen esepunto,por lo que lafunción sería definidapor WP (es decir,lapredeterminada). Su versiónpersonalizada debe cargar antes queesto suceda,lo que significa que debe cargarlaen un archivo de complementopersonalizado.
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 Parece quenopuedo hacer queestofuncione,he agregadoesto ami archivo defunciones,peroel correoelectrónicoestándar sigueenviando.Estoyen varios sitios,peroesono deberíaimportar,¿verdad?@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?
-
Bien,lotengo ahora,soloparecefuncionar como un complemento separado,no cuando lo agrega a su archivo `functions.php`.Ahorafuncionaperfectamente,¡gracias denuevoporesebuen código!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!
-
¿Funcionatambiénpara varios sitios?Puedo ver queelmultisitiotiene unmontón defunciones dentro dems-functions.phpparaenviar correoselectrónicos denotificación.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
-
Creo queelmultisitio usa `wpmu_signup_user_notification`.Multisite uses `wpmu_signup_user_notification` I think.
- 0
- 2014-11-25
- Wyck
-
Esta respuestatiene varios años.La respuesta aceptadanome funciona.(Agregarlo afunctions.phpno haceninguna diferencia conninguno de los correoselectrónicosenviados cuando se registra unnuevo usuario). ¿Debopublicar unanuevapregunta?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
-
Alfinalencontré un código quefuncionóparamíen estetutorial: 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
-
Para abordar los comentarios sobre quenofuncionaen functions.php,eso se debe a quenopuede cargar una versiónpersonalizada de unafunción conectabletantarde.Notiene nada que ver con que la respuesta sea antigua.Debe definir sufunciónpersonalizada antes de que se cargue la versión de WP.Cuando se cargaen functions.php,la versiónpredeterminada del complemento yaestá definida.Debe cargarlo * como un complemento * (no hay diferenciaentre la respuesta dada yel kit deenlacepublicado,aparte delpaso adicional de cargarlo como un complemento).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
Para usuarios de 2018en adelante:
Desde WordPress 4.9.0,haynuevosfiltros quepuede usarparaesto (yanoesnecesario un complemento):
- wp_new_user_notification_email :personalizarel correoelectrónicoenviado al usuario
- wp_new_user_notification_email_admin :personalizarel correoelectrónicoenviado al administrador
Ejemplo de usoen el correoelectrónicoenviado al administrador (puedepegarloen functions.php de sutema):
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; }
-
Alternativamente,sepueden usar losfiltros `wp_new_user_notification_email` y` wp_new_user_notification_email_admin`.Losinteresadospueden consultar la [documentación completa yel códigofuente] (https://developer.wordpress.org/reference/functions/wp_new_user_notification/)para `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
-
Gracias Pete,parece que seintrodujoen 4.9.0 yparece unamejor solución.Thanks Pete, looks like that was introduced in 4.9.0 and looks like a better solution.
- 0
- 2018-01-10
- Edu Wass
-
Hola.Tambiénestoy usandoel complemento WP Approve User. Demomentoenvíael correoelectrónicoestándar cuando se registran.No debería.Debería decir que la cuenta debe aprobarseprimero. We Approve Usertiene la opción deestablecereltextopara cuando la cuenta haya sido aprobada yestéfuncionando correctamente.Eselpasopreaprobado antes. ¿Utilizoestosnuevosfiltros quemencionaste?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
Estonofuncionaráen functions.php.Debeponereste código dentro de un complemento.
Sinopuede crear un complementoparaesto,simplemente useeste enlace .
No olvidetomarel código de actualización deestafunción desde aquí .
-
Solo unpunto de aclaraciónbasadoen la adición deenlaces defiltro a lafunción `wp_new_user_notification ()`.Esta respuesta hace referenciaespecíficamente a la anulación de `wp_new_user_notification ()` como unafunción conectable.Sinembargo,esto **no se aplica ** al uso de losfiltros `wp_new_user_notification_email` y` wp_new_user_notification_email_admin`.Estos sepueden usaren su archivofunctions.php (o [un complementoespecífico del sitio] (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
Después de unnuevo registro de usuario,WPenvía un correoelectrónico conelnombre de usuario/contraseña y unenlace a lapágina deinicio de sesión.
¿Hay algunaforma de cambiarestaplantilla de correoelectrónicopredeterminada?Tambiénme gustaría cambiarel asunto yel remitente.
Editar:para cualquierpersonainteresada, aquí es una solución de complemento.