Deshabilitar la notificación por correo electrónico después del cambio de contraseña

13

Quiero deshabilitar la notificación por correo electrónico si un usuario o un administrador cambian la contraseña de un usuario.

Después de buscar en Googleling, descubrí que necesitaba crear un complemento y sobrescribir la wp_password_change_notificationfunción que se encuentra en pluggable.php.

Este es el complemento y la función:

<?php
/*
Plugin Name: Stop email change password
Description: Whatever
*/

if ( !function_exists( 'wp_password_change_notification' ) ) {
    function wp_password_change_notification() {}
}
?>

¡Subí el archivo a mi carpeta de complementos y lo activé en mi panel de administración!

Esto debe hacerse con un complemento porque el pluggable.phparchivo se carga antes que el functions.phparchivo.

De todos modos, no parece funcionar para mí .......

El usuario aún recibe el correo electrónico.

Marqué todos los complementos y ejecuté el complemento en una instalación limpia para que no haya interferencias

¡El WP_DEBUGno muestra ningún error también!

¿Alguien puede decirme qué cambiar o cómo solucionarlo de otra manera (excepto las modificaciones principales :-))

METRO.

Interactivo
fuente
1
También luché e intenté crear / usar un complemento personalizado, estableciendo los filtros de WordPress en falso pero nada funcionó ... Justo hoy me topé con el complemento Administrar correos electrónicos de notificación y funciona :)
Leander

Respuestas:

18

Para deshabilitar la notificación de correo electrónico del usuario, agregue esto en un complemento o tema:

add_filter( 'send_password_change_email', '__return_false' );

FYI wp_password_change_notification()controla la notificación por correo electrónico del administrador cuando un usuario cambia su contraseña

usuario42826
fuente
10

Para deshabilitar la notificación de correo electrónico del administrador cuando un usuario restablece su propia contraseña , cree un complemento (o debe usar el complemento ) con el siguiente fragmento de código:

/**
 * Disable Admin Notification of User Password Change
 *
 * @see pluggable.php
 */
if ( ! function_exists( 'wp_password_change_notification' ) ) {
    function wp_password_change_notification( $user ) {
        return;
    }
}

Esto evitará que el siguiente correo electrónico se envíe al correo electrónico del administrador en Configuración> General:

De: WordPress <[email protected]>
Para: [email protected]
Asunto: [WordPress] Contraseña cambiada

Contraseña cambiada para el usuario: nombre de usuario

La supresión de esta notificación por correo electrónico debe manejarse con un complemento porque pluggable.phpse carga antes que el functions.phparchivo de un tema .


Si en su lugar desea deshabilitar la notificación por correo electrónico del Usuario de que un usuario ha cambiado con éxito su propia contraseña , use el siguiente filtro colocado en functions.php:

/**
 * Disable User Notification of Password Change Confirmation
 */
add_filter( 'send_password_change_email', '__return_false' );

Esto evitará que se envíe el siguiente correo electrónico:

De: WordPress <[email protected]>
Para: [email protected]
Asunto: [WordPress] Contraseña cambiada

Hola nombre de usuario

Este aviso confirma que su contraseña se cambió en WordPress.

Si no cambió su contraseña, comuníquese con el Administrador del sitio en [email protected]

Este correo electrónico ha sido enviado a [email protected]

Saludos,
todo en WordPress
http://example.com/

rjb
fuente
2
Hay un gran error en esta respuesta. El nombre del filtro es "send_password_change_email" no "send_email_change_email". codex.wordpress.org/Plugin_API/Filter_Reference/…
Tristan CHARBONNIER
Célebre. Como referencia, los dos filtros están relacionados y pueden usarse para deshabilitar la notificación del usuario cuando el usuario cambia un correo electrónico o una contraseña. El caso de uso depende de qué notificación desea suprimir: cambio de correo electrónico o cambio de contraseña. Para una imagen clara, consulte la función de WordPress wp_update_user()en wp-includes/user.php: core.trac.wordpress.org/browser/tags/4.9.5/src/wp-includes/…
rjb
2

WordPress envía la notificación por defecto cuando el usuario se actualiza con wp_update_user().

Intentar sobrescribir esto usando filtros, modificar pluggable.phpo sobrescribir con una función vacía, no funciona.

En su lugar, úselo wp_set_password( $password, $user_id )cuando no desee que se active el correo electrónico de notificación para los usuarios / administradores al restablecer la contraseña.

Meint-Willem Gaasbeek
fuente
1

Copie el siguiente código y guárdelo como disable_email.php. Luego coloque ese archivo en el directorio "wp-content / plugins /". Y activo desde el Panel de administración.

<?php
/*
Plugin Name: Stop email change password
Description: Whatever
*/

if (!function_exists('wp_password_change_notification')) {
    function wp_password_change_notification($user) {
        return;
    }
}
?>
Sabbir Hasan
fuente
??? ¿Cómo es esto diferente de lo que hice?
Interactivo el
¿Has hecho un complemento y has puesto tu código en eso?
Sabbir Hasan
Sí, eso es lo que pensé que describí. ¡Pero actualizaré la pregunta si no estaba clara!
Interactivo el
Probar ahora. Actualicé la respuesta. Debería funcionar ahora !
Sabbir Hasan
Ja, acabo de encontrar y probar esto, ¡pero no funcionó!
Interactivo el
1

Otras respuestas son incorrectas porque deshabilitan el envío de correo electrónico cuando se cambia el correo electrónico, no cuando se cambia la contraseña.

Agregar el siguiente código en su archivo functions.php bajo su tema activo (o alternativamente en un complemento) debería funcionar. Me funcionó para la versión 4.6.1

/**
 * Disable sending of the password change email
 */
add_filter( 'send_password_change_email', '__return_false' );

Ver documentación oficial

wynnset
fuente
No todas las otras respuestas podrían estar equivocadas y las nuevas respuestas se publican todo el tiempo. Debe ser más específico en su respuesta al referirse a "otras" respuestas.
Sparky
0

Use la función wp_set_password () en lugar de wp_update_user () para actualizar la contraseña, ya que esto no activará una notificación por correo electrónico.

Andrew Schultz
fuente