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

23 oct 2015, 11:42:43
Vistas: 60.8K
Votos: 24

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

Después de buscar en Google, descubrí que necesito crear un plugin y sobrescribir la función wp_password_change_notification que se encuentra en pluggable.php.

Este es el plugin y la función:

<?php
/*
Plugin Name: Detener correo de cambio de contraseña
Description: Lo que sea
*/

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

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

Esto debe hacerse con un plugin porque el archivo pluggable.php se carga antes que el archivo functions.php.

De todos modos, parece que no funciona para mí.

El usuario sigue recibiendo el correo electrónico.

Desactivé todos los plugins y ejecuté el plugin en una instalación limpia para que no haya interferencias

¡El WP_DEBUG tampoco muestra ningún error!

¿Alguien puede decirme qué cambiar o cómo arreglarlo de otra manera (excepto modificaciones del núcleo :-))

M.

1
Comentarios

También tuve problemas e intenté crear/usar un plugin personalizado, configurando los filtros de WordPress como false pero nada funcionó... Recién hoy me encontré con el plugin Manage Notification E-mails y funciona :)

Leander Leander
26 feb 2016 11:40:14
Todas las respuestas a la pregunta 9
0
37

Para desactivar la notificación por correo electrónico al usuario, agrega esto en un plugin o tema:

add_filter( 'send_password_change_email', '__return_false' );

Para tu información, la función wp_password_change_notification() controla la notificación por correo electrónico al administrador cuando un usuario cambia su contraseña.

23 oct 2015 22:58:04
3
33

Para desactivar la notificación por correo al Administrador cuando un usuario restablece su propia contraseña, crea un Plugin (o un Plugin de Uso Obligatorio) usando el siguiente fragmento de código:

/**
 * Desactiva la Notificación al Administrador del Cambio de Contraseña de Usuario
 *
 * @see pluggable.php
 */
if ( ! function_exists( 'wp_password_change_notification' ) ) {
    function wp_password_change_notification( $user ) {
        return;
    }
}

Esto evitará que se envíe el siguiente correo electrónico al Email del Administrador en Ajustes > Generales:

De: WordPress <wordpress@example.com>
Para: admin@example.com
Asunto: [WordPress] Contraseña Cambiada

Contraseña cambiada para el usuario: nombredeusuario

La supresión de esta notificación por correo debe manejarse con un plugin porque pluggable.php se carga antes que el archivo functions.php del tema.


Si deseas en su lugar desactivar la notificación por correo al Usuario que confirma que ha cambiado su contraseña correctamente, usa el siguiente filtro colocado en functions.php:

/**
 * Desactiva la Notificación al Usuario de Confirmación de Cambio de Contraseña
 */
add_filter( 'send_password_change_email', '__return_false' );

Esto suprimirá el siguiente correo electrónico:

De: WordPress <wordpress@example.com>
Para: nombredeusuario@example.com
Asunto: [WordPress] Contraseña Cambiada

Hola nombredeusuario,

Este aviso confirma que tu contraseña fue cambiada en WordPress.

Si no cambiaste tu contraseña, por favor contacta al Administrador del Sitio en admin@example.com

Este correo ha sido enviado a nombredeusuario@example.com

Saludos,
Todo el equipo de WordPress
http://example.com/

5 may 2017 21:03:59
Comentarios

Hay un gran error en esta respuesta. El nombre del filtro es "send_password_change_email", no "send_email_change_email".

https://codex.wordpress.org/Plugin_API/Filter_Reference/send_password_change_email

Tristan CHARBONNIER Tristan CHARBONNIER
6 abr 2018 11:29:40

Anotado. Como referencia, estos dos filtros están relacionados y pueden usarse para desactivar la notificación al usuario cuando se cambia el correo electrónico o la contraseña por parte del usuario. El caso de uso para cada uno depende de qué notificación deseas suprimir: cambio de correo o cambio de contraseña. Para una imagen más clara, consulta la función de WordPress wp_update_user() en wp-includes/user.php: https://core.trac.wordpress.org/browser/tags/4.9.5/src/wp-includes/user.php#L1795

rjb rjb
6 abr 2018 19:15:04

Hola, ¿por qué se ejecutaría esta función wp_password_change_notification cuando ya existe una función con el mismo nombre?

danny danny
13 mar 2023 22:05:02
4

Si estás usando Woocommerce:

Desde WC 3.8.0 (Noviembre 2019), ahora hay un gancho de filtro dedicado para esto:

add_filter('woocommerce_disable_password_change_notification', '__return_true');

Debería suprimir las notificaciones de cambio de contraseña.

22 abr 2020 14:00:50
Comentarios

ese hook es solo para cuando se usa woocommerce (woocommerce 3.8, no wordpress 3.8)

Rafa Rafa
13 may 2020 12:22:59

@Rafa Ups, sí, he estado haciendo tanto desarrollo de WC + WP que las líneas se han difuminado para mí. He ajustado mi respuesta, gracias.

Mikepote Mikepote
14 may 2020 15:25:42

Ten en cuenta que esto desactivará el correo de restablecimiento de contraseña para el usuario (ver /woocommerce/includes/shortcodes/class-wc-shortcode-my-account.php) y por lo tanto no está relacionado con las notificaciones de administrador...

Leander Leander
4 oct 2022 21:35:53

Este hook 'woocommerce_disable_password_change_notification' efectivamente desactiva el correo electrónico de notificación "Contraseña Cambiada" que se envía al administrador en sitios WooCommerce. Puedes observar en /woocommerce/includes/shortcodes/class-wc-shortcode-my-account.php que evita que se ejecute la función wp_password_change_notification(), y dicha función "Notifica al administrador del blog cuando un usuario cambia su contraseña" Referencia para Desarrolladores de WordPress

Abundant Designs Abundant Designs
10 mar 2023 20:12:07
1

Esto funciona para mí, solo hay que limpiar la dirección de correo electrónico.

// Desactiva el correo de notificación de cambio de contraseña.
add_filter('wp_password_change_notification_email', function ($wp_password_change_notification_email) {
    $wp_password_change_notification_email['to'] = '';
    return $wp_password_change_notification_email;
});
10 feb 2022 17:35:23
Comentarios

Esa es la mejor manera de hacerlo ahora. Cuando se hizo la pregunta por primera vez, wp_password_change_notification_email no existía (se añadió en WP 4.9).

butlerblog butlerblog
29 mar 2022 19:21:41
6

Copia el siguiente código y guárdalo como disable_email.php. Luego coloca ese archivo en el directorio "wp-content/plugins/". Y actívalo desde el Panel de Administración.

<?php
/*
Plugin Name: Detener notificación de cambio de contraseña
Description: Lo que sea
*/

if (!function_exists('wp_password_change_notification')) {
    function wp_password_change_notification($user) {
        return;
    }
}
?>
23 oct 2015 11:51:06
Comentarios

¿En qué se diferencia esto de lo que hice?

Interactive Interactive
23 oct 2015 11:57:28

¿Has creado un plugin y colocado tu código en él?

Sabbir Hasan Sabbir Hasan
23 oct 2015 12:05:48

Sí, eso es lo que pensé que había descrito. ¡Pero actualizaré la pregunta si no quedó claro!

Interactive Interactive
23 oct 2015 12:09:20

Prueba ahora. Actualicé la respuesta. ¡Debería funcionar ahora!

Sabbir Hasan Sabbir Hasan
23 oct 2015 12:13:18

¡Ja! Acabo de encontrar esto y lo probé, pero no funcionó.

Interactive Interactive
23 oct 2015 12:15:59

@Interactive Primero debes activar el plugin. A mí me funcionó.

Max S. Max S.
9 dic 2019 01:46:25
Mostrar los 1 comentarios restantes
0

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

Intentar sobrescribir esto usando filtros, modificando pluggable.php, o sobrescribiendo con una función vacía, no funciona.

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

23 feb 2016 13:55:11
2

edición: esto es para desactivar solamente las notificaciones del administrador cuando cualquier otro usuario del sitio cambia su contraseña. ¡Puede que haya malinterpretado la pregunta! Mis disculpas =]

La función wp_password_change_notification es la responsable de esta funcionalidad dentro de WordPress que envía correos electrónicos a los administradores con estas actualizaciones de cambio de contraseña de usuarios (como ya han mencionado otras publicaciones).

Lo que no he visto aquí es que dentro de ./wp-includes/default-filters.php ~línea 499 (al momento de escribir esto) verás que esta función está siendo añadida a la acción after_password_reset.

Una solución rápida es simplemente eliminarla de la lista de acciones:

remove_action( 'after_password_reset', 'wp_password_change_notification' );

Definitivamente puedes reescribir/sobrescribir wp_password_change_notification, ya que es una de las funciones de pluggable.php, pero si lo que buscas es eliminar esta funcionalidad en lugar de actualizarla, esta podría ser una mejor opción.

1 mar 2023 19:15:08
Comentarios

Agregaré que la acción after_password_reset se ejecuta después del procedimiento de restablecimiento de contraseña (pantalla de inicio de sesión). El envío de una notificación de cambio de contraseña como resultado de la edición del perfil se puede controlar mediante el filtro send_password_change_email.

nmr nmr
4 mar 2023 13:16:41

¡Ups! Tu comentario me hizo darme cuenta de que quizás leí mal esta pregunta. Estaba buscando una manera de desactivar la notificación del administrador cuando cualquier usuario del sitio cambia su contraseña. Editaré para anotar eso rápidamente - gracias @nmr

Rohjay Rohjay
7 mar 2023 21:03:26
1

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

Agregar el siguiente código en tu archivo functions.php bajo tu tema activo (o alternativamente en un plugin) debería funcionar. Funcionó para mí en la versión 4.6.1

/**
 * Deshabilita el envío del correo electrónico de cambio de contraseña
 */
add_filter( 'send_password_change_email', '__return_false' );

Consulta la documentación oficial

14 jun 2017 07:43:59
Comentarios

No todas las demás respuestas pueden estar equivocadas y se publican nuevas respuestas todo el tiempo. Deberías ser más específico en tu respuesta cuando te refieras a "otras" respuestas.

Sparky Sparky
10 dic 2019 22:01:10
0

Utiliza 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.

17 dic 2017 10:01:52