web-dev-qa-db-fra.com

Désactiver la notification par courrier électronique après le changement de mot de passe

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 un peu de Googleling, je me suis rendu compte que je devais créer un plugin et écraser la fonction wp_password_change_notification contenue dans pluggable.php.

Voici 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 plug-in et je l'ai activé dans mon panneau d'administration!

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

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

L'utilisateur reçoit toujours le courrier électronique.

J'ai désactivé tous les plugins et lance le plugin sur une installation propre, donc pas d'interférences

Le WP_DEBUG ne montre pas non plus d'erreur !!!

Quelqu'un peut-il me dire quoi changer ou comment le réparer autrement (sauf modifications de base :-))

M.

13
Interactive

Pour désactiver la notification par courrier électronique de l'utilisateur, 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 courrier électronique de l'administrateur lorsqu'un utilisateur modifie son mot de passe

16
user42826

Pour désactiver notification par courrier électronique de l'administrateur lorsqu'un utilisateur réinitialise son propre mot de passe , créez un plugin (ou doit utiliser Plugin ) à 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]>
To: [email protected]
Sujet: [WordPress] Mot de passe modifié

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

La suppression de cette notification par courrier électronique doit être gérée par un plugin, car pluggable.php est chargé avant le fichier functions.php du thème.


Si vous souhaitez plutôt désactiver Notification par courrier électronique de l'utilisateur qu'un utilisateur a bien changé 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 le courrier électronique suivant:

De: WordPress <[email protected]>
To: [email protected]
Sujet: [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 changé votre mot de passe, veuillez contacter l'administrateur du site à [email protected].

Cet email a été envoyé à [email protected]

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

7
rjb

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

Essayer d'écraser ceci en utilisant des filtres, en modifiant pluggable.php ou en écrasant avec une fonction vide, ne fonctionne pas.

Utilisez plutôt wp_set_password( $password, $user_id ) lorsque vous ne souhaitez pas que le courrier électronique de notification soit déclenché pour les utilisateurs/administrateurs lors de la réinitialisation du mot de passe.

2
Meint-Willem Gaasbeek

Les autres réponses sont erronées car elles désactivent l'envoi d'e-mail lorsque le courrier électronique est modifié, et non lorsque le mot de passe est modifié.

Ajouter le code ci-dessous dans votre fichier functions.php sous votre thème actif (ou dans un plugin) devrait fonctionner. Travaillé pour moi pour la version 4.6.1

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

Voir documentation officielle

2
wynnset

Copiez le code suivant et enregistrez-le sous le nom disable_email.php. Ensuite, placez 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;
    }
}
?>
0
Sabbir Hasan

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 courrier électronique.

0
Andrew Schultz