Désactiver les notifications WordPress de changements de mot de passe

Mis à jour le :

Chaque fois qu’un utilisateur de votre site sous WordPress réinitialise son mot de passe, l’administrateur reçoit un e-mail, ce qui, pour un site avec de nombreux utilisateurs, peut vite devenir agaçant.

Heureusement, deux lignes de code suffisent pour désactiver cette notification, ainsi que celle que reçoit un utilisateur lorsque le mot de passe de son compte est modifié. WordPress envoie en effet deux e-mails distincts, tous deux intitulés « [Nom de votre site] Mot de passe changé » :

  • le premier part vers l’Adresse e-mail d’administration définie dans Réglages > Général, quand un utilisateur choisit un nouveau mot de passe après avoir cliqué sur le lien « Mot de passe oublié ? » de la page de connexion. Il n’est pas envoyé si ce compte utilise lui-même l’adresse d’administration ;
  • le second part vers l’adresse du compte concerné, quand son mot de passe est modifié depuis sa page de profil (Comptes > Profil, ou simplement Profil pour les rôles qui n’ont pas accès à la liste des comptes) ou par un administrateur dans Comptes > Tous les comptes.

Pour les désactiver, créez simplement un mu-plugin, c’est-à-dire un fichier PHP placé dans le dossier wp-content/mu-plugins, avec le code suivant :

<?php
/**
 * Plugin Name: Disable Password Change Notifications
 */

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

/* Disable Admin Password Change Notification */
remove_action('after_password_reset', 'wp_password_change_notification');

Un mu-plugin pour must-use plugin fonctionne de la même manière qu’une extension classique à la différence près que vous ne pouvez pas la désactiver depuis l’interface d’administration.

Pour le vérifier, utilisez un compte non administrateur et réinitialisez son mot de passe via le lien « Mot de passe oublié ? » de la page de connexion, avant et après l’ajout du bout de code. Vous ne devriez plus recevoir la notification par e-mail en tant qu’administrateur.

Idem pour la première ligne, qui désactive l’e-mail envoyé au titulaire du compte : modifiez son mot de passe depuis Comptes > Profil pour le constater. Ne la gardez que si vous en avez vraiment besoin : ce message invite l’utilisateur à contacter l’administrateur s’il n’a pas modifié lui-même son mot de passe, une alerte précieuse en cas de piratage de son compte.

Comme le souligne Julio en commentaire, il est judicieux que l’administrateur soit informé d’un changement de mot de passe notamment sur les autres comptes administrateurs qui disposent des droits complets sur le site. Il peut donc être intéressant de filtrer cela sur un rôle spécifique.

Pour continuer à être prévenu lorsqu’un administrateur réinitialise son mot de passe, remplacez les deux dernières lignes du code précédent par celles-ci :

/* Notify the site admin only when an account with one of these roles resets its password */
function wpc_password_reset_admin_notification( $user ) {
	$roles = array( 'administrator' );

	if ( array_intersect( $roles, (array) $user->roles ) ) {
		wp_password_change_notification( $user );
	}
}
remove_action( 'after_password_reset', 'wp_password_change_notification' );
add_action( 'after_password_reset', 'wpc_password_reset_admin_notification' );

Pour surveiller d’autres rôles, ajoutez leur identifiant au tableau $roles, par exemple 'editor' pour le rôle Éditeur/éditrice.

Autre notification souvent superflue : voyez comment désactiver la vérification de l’e-mail d’administration.

Avatar de Aurélien Denis

Protégez votre site WordPress

Vos données sont précieuses,
ne prenez pas le risque de tout perdre.
Confiez-moi votre maintenance !

Ces articles devraient t’intéresser…

5 réponses

  1. Avatar de Nicolas Mollet
    Nicolas Mollet

    Bonjour
    Tu es sûr que c’est bien ce que ça fait, c’est à dire désactiver la notification pour l’administrateur de chaque changement de mot de passe de n’importe quel utilisateur du site ?

    A la vue du code, ce filtre désactive l’envoi d’email à l’utilisateur qui a solicité le changement de mot de passe.

    Ce qui controle l’envoi de la notification à l’administrateur peut être géré via l’action suivante :
    add_action( ‘after_password_reset’, ‘wp_password_change_notification’ );

    1. Avatar de Julio
      Julio

      Tu as raison Nicolas, le code désactive la notification à l’utilisateur lui même et non à l’admin.
      De plus ce n’est pas bon niveau sécurité de ne pas prévenir l’administrateur qu’un mot de passe a été modifié.
      Alors je peux comprendre quand on a 1000/10000/100000+ membres, dans ce cas il vaut mieux laisser la notification quand le compte d’un administrateur change de password, on peut faire la même chose quand un compte change son mail.
      Mais désactiver ça mets en danger les comptes sensibles, ces mails ne sont pas là pour rien.

    2. Avatar de Aurélien Denis
      Aurélien Denis

      Bien vu, je me suis mélangé avec le filtre que j’avais appliqué sur un projet client et qui a inspiré cet article. J’ai donc ajusté le contenu en présentant les 2 cas : notification envoyée à l’administrateur et notification envoyée à l’utilisateur. Merci ! 🙂

  2. Avatar de herve
    herve

    Bonjour,
    Je ne comprends pas l’intérêt de créer un mu-plugin pour cette seule ligne !
    pourquoi ne pas le mettre dans functions.php ?
    ah chouette d’autres astuces autour de la gestion de profil.
    Je demanderai bien pour ne plus avoir de notification lors de l’inscription d’un nouvel utilisateur (bruit inutile)
    @+

    1. Avatar de Aurélien Denis
      Aurélien Denis

      Hello, car c’est une fonctionnalité qui ne doit pas dépendre du thème installé. Pour ma part, je dispose d’un mu-plugin spécifique à toutes les fonctions qui interagissent sur le back-office de sorte. De plus, pour le code présenté ici, l’ajout dans le thème ne fonctionnera pas. La prochaine astuce parlera d’un filtre équivalent pour les inscriptions de nouveaux utilisateurs oui. 😉