Desativar notificação por email após alteração de senha

13

Desejo desativar a notificação por email se um usuário ou um administrador alterar a senha de um usuário.

Depois de pesquisar no Google, descobri que precisava criar um plugin e substituir a wp_password_change_notificationfunção encontrada em pluggable.php.

Este é o plugin e a função:

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

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

Carreguei o arquivo na minha pasta de plugins e o ativei no meu painel de administração!

Isso precisa ser feito com um plug-in porque o pluggable.phparquivo é carregado antes do functions.phparquivo.

De qualquer forma, não parece funcionar para mim .......

O usuário ainda recebe o email.

Coloquei todos os plugins em forma de diamante e executei o plug-in em uma instalação limpa, sem interferências

O WP_DEBUGnão mostra nenhum erro também !!!

Alguém pode me dizer o que alterar ou como corrigi-lo de outra maneira (exceto as principais modificações :-))

M.

Interativo
fonte
1
Eu também lutou e tentou criar / usar um plug-in personalizado, definindo os wordpress-filtros para falso, mas nada funcionou ... Só hoje me deparei com o Gerenciar notificação de e-mails do plugin e funciona :)
Leander

Respostas:

18

Para desativar a notificação por email do usuário, adicione isso em um plugin ou tema:

add_filter( 'send_password_change_email', '__return_false' );

A FYI wp_password_change_notification()controla a notificação por e-mail do administrador quando um usuário altera sua senha

user42826
fonte
10

Para desativar a notificação por email do administrador quando um usuário redefine sua própria senha , crie um Plug-in (ou Must Use Plugin ) usando o seguinte snippet 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;
    }
}

Isso impedirá que o seguinte email seja enviado ao email do administrador em Configurações> Geral:

De: WordPress <[email protected]>
Para: [email protected]
Assunto: [WordPress] Senha alterada

Senha alterada para o usuário: nome de usuário

A supressão dessa notificação por e-mail deve ser tratada com um plug-in, pois ele pluggable.phpé carregado antes do functions.phparquivo de um tema .


Se você deseja desativar a notificação por e-mail do usuário de que um usuário alterou com êxito sua própria senha , use o seguinte filtro colocado em functions.php:

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

Isso suprimirá o envio do seguinte email:

De: WordPress <[email protected]>
Para: nomedeusuá[email protected]
Assunto: [WordPress] Senha alterada

Olá, nome de usuário,

Este aviso confirma que sua senha foi alterada no WordPress.

Se você não alterou sua senha, entre em contato com o Administrador do Site em [email protected]

Este email foi enviado para [email protected]

Atenciosamente,
Tudo no WordPress
http://example.com/

rjb
fonte
2
Há um grande erro nesta resposta. O nome do filtro é "send_password_change_email" e não "send_email_change_email". codex.wordpress.org/Plugin_API/Filter_Reference/…
Tristan CHARBONNIER
Notado. Para referência, os dois filtros estão relacionados e podem ser usados ​​para desativar a notificação do usuário quando um email ou senha é alterado pelo usuário. O caso de uso de qualquer um deles depende da notificação que você deseja suprimir - alteração de email ou alteração de senha. Para uma imagem clara, consulte a função WordPress wp_update_user()em wp-includes/user.php: core.trac.wordpress.org/browser/tags/4.9.5/src/wp-includes/...
RJB
2

O WordPress envia a notificação por padrão quando o usuário é atualizado com wp_update_user().

Tentar sobrescrever isso usando filtros, modificar pluggable.phpou sobrescrever com uma função vazia, não funciona.

Em vez disso, use wp_set_password( $password, $user_id )quando não desejar que o email de notificação seja acionado para usuários / administradores em uma redefinição de senha.

Meint-Willem Gaasbeek
fonte
1

Copie este código a seguir e salve como disable_email.php. Em seguida, coloque esse arquivo no diretório "wp-content / plugins /". E ativo no Painel de administração.

<?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
fonte
??? Como isso é diferente do que eu fiz?
Interactive
Você criou um plugin e colocou seu código nele?
Sabbir Hasan
Sim, foi o que pensei que descrevi. Mas vou atualizar a pergunta se não estiver claro!
Interactive
tente agora. Eu atualizei a resposta. Deve funcionar agora!
Sabbir Hasan
Ha eu apenas encontrei e tentei isso, mas não funcionou!
Interativo
1

Outras respostas estão erradas porque as pessoas desativam o envio de email quando o email é alterado, não quando a senha é alterada.

Adicionar o código abaixo ao seu arquivo functions.php sob o tema ativo (ou alternativamente em um plugin) deve funcionar. Trabalhou para mim para a versão 4.6.1

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

Ver documentação oficial

wynnset
fonte
Nem todas as outras respostas podem estar erradas e novas respostas são postadas o tempo todo. Você deve ser mais específico em sua resposta ao se referir a "outras" respostas.
Sparky
0

Use a função wp_set_password () em vez de wp_update_user () para atualizar a senha, pois isso não acionará uma notificação por email.

Andrew Schultz
fonte