Désactiver la notification par e-mail après un changement de mot de passe

13

Je souhaite désactiver la notification par e-mail si un utilisateur ou un administrateur modifie le mot de passe d'un utilisateur.

Après quelques Googleling, j'ai découvert que je devais créer un plugin et écraser la wp_password_change_notificationfonction trouvée dans pluggable.php.

Ceci est le plugin et la fonction:

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

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

J'ai téléchargé le fichier dans mon dossier de plugins et l'ai activé dans mon panneau d'administration!

Cela doit être fait avec un plugin car le pluggable.phpfichier est chargé avant le functions.phpfichier.

Quoi qu'il en soit, cela ne semble pas fonctionner pour moi .......

L'utilisateur reçoit toujours l'e-mail.

J'ai désactivé tous les plugins et exécuté le plugin sur une installation propre, donc aucune interférence

Le WP_DEBUGne montre pas non plus d'erreurs !!!

Quelqu'un peut-il me dire quoi changer ou comment le corriger d'une autre manière (sauf les modifications de base :-))

M.

Interactif
la source
1
J'ai également eu du mal et essayé de créer / utiliser un plugin personnalisé, définissant les filtres WordPress sur faux mais rien n'a fonctionné ... Aujourd'hui encore, je suis tombé sur le plugin Manage Notification E-mails et cela fonctionne :)
Leander

Réponses:

18

Pour désactiver la notification par e-mail des utilisateurs, ajoutez ceci dans un plugin ou un thème:

add_filter( 'send_password_change_email', '__return_false' );

FYI wp_password_change_notification()contrôle la notification par e-mail de l'administrateur lorsqu'un utilisateur change de mot de passe

user42826
la source
10

Pour désactiver la notification par e-mail de l'administrateur lorsqu'un utilisateur réinitialise son propre mot de passe , créez un plug-in (ou doit utiliser un plug-in ) à l'aide de l'extrait de code suivant:

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

Cela empêchera l'envoi du courrier électronique suivant au courrier électronique de l'administrateur dans Paramètres> Général:

De: WordPress <[email protected]>
À: [email protected]
Objet: [WordPress] Mot de passe modifié

Mot de passe modifié pour l'utilisateur: nom d'utilisateur

La suppression de cette notification par e-mail doit être gérée avec un plug-in car elle pluggable.phpest chargée plus tôt que le functions.phpfichier d'un thème .


Si vous souhaitez plutôt désactiver la notification par e-mail de l' utilisateur qu'un utilisateur a réussi à modifier son propre mot de passe , utilisez le filtre suivant placé dans functions.php:

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

Cela supprimera l'envoi de l'e-mail suivant:

De: WordPress <[email protected]>
À: [email protected]
Objet: [WordPress] Mot de passe modifié

Bonjour nom d'utilisateur,

Cet avis confirme que votre mot de passe a été modifié sur WordPress.

Si vous n'avez pas modifié votre mot de passe, veuillez contacter l'administrateur du site à [email protected]

Cet e-mail a été envoyé à [email protected]

Cordialement,
Tout sur WordPress
http://example.com/

rjb
la source
2
Il y a une grosse erreur dans cette réponse. Le nom du filtre est "send_password_change_email" et non "send_email_change_email". codex.wordpress.org/Plugin_API/Filter_Reference/…
Tristan CHARBONNIER
C'est noté. Pour référence, les deux filtres sont liés et peuvent être utilisés pour désactiver la notification de l'utilisateur lorsqu'un e - mail ou un mot de passe est modifié par l'utilisateur. Le cas d'utilisation de l'un ou l'autre dépend de la notification que vous souhaitez supprimer - changement d'e-mail ou changement de mot de passe. Pour une image claire, reportez-vous à la fonction WordPress wp_update_user()dans wp-includes/user.php: core.trac.wordpress.org/browser/tags/4.9.5/src/wp-includes/…
rjb
2

WordPress envoie la notification par défaut lorsque l'utilisateur est mis à jour avec wp_update_user().

Essayer d'écraser cela à l'aide de filtres, de modifier pluggable.phpou d'écraser avec une fonction vide, ne fonctionne pas.

Utilisez-le à la place wp_set_password( $password, $user_id )lorsque vous ne souhaitez pas que l'e-mail de notification soit déclenché pour les utilisateurs / administrateurs lors d'une réinitialisation du mot de passe.

Meint-Willem Gaasbeek
la source
1

Copiez ce code suivant et enregistrez-le sous disable_email.php. Placez ensuite ce fichier dans le répertoire "wp-content / plugins /". Et actif depuis le panneau d'administration.

<?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
la source
??? En quoi est-ce différent de ce que j'ai fait?
interactif à
Avez-vous créé un plugin et placé votre code là-dessus?
Sabbir Hasan
Oui, c'est ce que je pensais avoir décrit. Mais je mettrai à jour la question si elle n'était pas claire!
interactif
Essayez maintenant. J'ai mis à jour la réponse. Ça devrait marcher maintenant!
Sabbir Hasan
Ha, je viens de trouver et d'essayer, mais cela n'a pas fonctionné!
interactif
1

Les autres réponses sont fausses car celles-ci désactivent l'envoi d'e-mails lorsque l'e-mail est modifié, pas lorsque le mot de passe est modifié.

L'ajout du code ci-dessous dans votre fichier functions.php sous votre thème actif (ou alternativement dans un plugin) devrait fonctionner. A fonctionné pour moi pour la version 4.6.1

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

Voir la documentation officielle

wynnset
la source
Toutes les autres réponses ne peuvent pas être erronées et de nouvelles réponses sont affichées en permanence. Vous devriez être plus précis dans votre réponse lorsque vous vous référez à des «autres» réponses.
Sparky
0

Utilisez la fonction wp_set_password () au lieu de wp_update_user () pour mettre à jour le mot de passe car cela ne déclenchera pas de notification par e-mail.

Andrew Schultz
la source