Deaktivieren Sie die E-Mail-Benachrichtigung nach Änderung des Passworts

13

Ich möchte die E-Mail-Benachrichtigung deaktivieren, wenn ein Benutzer oder Administrator das Kennwort eines Benutzers ändert.

Nach einigem Googleling habe ich festgestellt, dass ich ein Plugin erstellen und die in enthaltene wp_password_change_notificationFunktion überschreiben muss pluggable.php.

Dies ist das Plugin und die Funktion:

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

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

Ich habe die Datei in meinen Plugin-Ordner hochgeladen und in meinem Admin-Panel aktiviert!

Dies muss mit einem Plugin erfolgen, da die pluggable.phpDatei vor der functions.phpDatei geladen wird.

Sowieso scheint es nicht für mich zu arbeiten .......

Der Benutzer erhält die E-Mail weiterhin.

Ich habe alle Plugins deaktiviert und das Plugin auf einer sauberen Installation ausgeführt, damit keine Interferenzen auftreten

Das WP_DEBUGzeigt auch keine Fehler !!!

Kann mir jemand sagen, was ich ändern oder wie ich es auf andere Weise beheben soll (außer Kernmodifikationen :-))

M.

Interaktiv
quelle
1
Ich kämpfte auch und versuchte, ein benutzerdefiniertes Plugin zu erstellen / zu verwenden, wobei die WordPress-Filter auf false gesetzt wurden, aber nichts funktionierte ... Gerade heute bin ich auf das Plugin zum Verwalten von Benachrichtigungs-E-Mails gestoßen und es funktioniert :)
Leander

Antworten:

18

Um die Benutzer-E-Mail-Benachrichtigung zu deaktivieren, fügen Sie Folgendes in ein Plugin oder Thema ein:

add_filter( 'send_password_change_email', '__return_false' );

Zu Ihrer wp_password_change_notification()Information: Die E-Mail-Benachrichtigung des Administrators wird gesteuert, wenn ein Benutzer sein Kennwort ändert

user42826
quelle
10

Um die Admin-E-Mail-Benachrichtigung zu deaktivieren, wenn ein Benutzer sein eigenes Kennwort zurücksetzt , erstellen Sie ein Plug-In (oder ein Plug-In, das verwendet werden muss ) mit dem folgenden Code-Snippet:

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

Dadurch wird verhindert, dass die folgende E-Mail unter "Einstellungen"> "Allgemein" an die E-Mail-Adresse des Administrators gesendet wird:

Von: WordPress <[email protected]>
An: [email protected]
Betreff: [WordPress] Passwort geändert

Passwort für Benutzer geändert: Benutzername

Das Unterdrücken dieser E-Mail-Benachrichtigung muss mit einem Plugin erfolgen, da pluggable.phpes früher als die functions.phpDatei eines Themas geladen wird .


Wenn Sie stattdessen die Benutzer-E-Mail-Benachrichtigung deaktivieren möchten, dass ein Benutzer sein Kennwort erfolgreich geändert hat , verwenden Sie den folgenden Filter functions.php:

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

Dadurch wird das Senden der folgenden E-Mail unterdrückt:

Von: WordPress <[email protected]>
An: [email protected]
Betreff: [WordPress] Passwort geändert

Hallo Benutzername,

Dieser Hinweis bestätigt, dass Ihr Passwort in WordPress geändert wurde.

Wenn Sie Ihr Passwort nicht geändert haben, wenden Sie sich bitte an den Site-Administrator unter [email protected]

Diese E-Mail wurde an [email protected] gesendet

Grüße,
alle bei WordPress
http://example.com/

rjb
quelle
2
Diese Antwort enthält einen großen Fehler. Der Filtername lautet "send_password_change_email" und nicht "send_email_change_email". codex.wordpress.org/Plugin_API/Filter_Reference/…
Tristan CHARBONNIER
Zur Kenntnis genommen. Zu Referenzzwecken stehen die beiden Filter in Beziehung und können zum Deaktivieren der Benutzerbenachrichtigung verwendet werden, wenn der Benutzer eine E-Mail-Adresse oder ein Kennwort ändert. Der Anwendungsfall hängt davon ab, welche Benachrichtigung Sie unterdrücken möchten - E-Mail-Änderung oder Kennwortänderung. Ein klares Bild erhalten Sie in der WordPress-Funktion wp_update_user()unter wp-includes/user.php: core.trac.wordpress.org/browser/tags/4.9.5/src/wp-includes/…
rjb
2

WordPress sendet die Benachrichtigung standardmäßig, wenn der Benutzer mit aktualisiert wird wp_update_user().

Der Versuch, dies mit Filtern zu überschreiben, zu ändern pluggable.phpoder mit einer leeren Funktion zu überschreiben, funktioniert nicht.

Verwenden wp_set_password( $password, $user_id )Sie diese Option stattdessen, wenn die Benachrichtigungs-E-Mail für Benutzer / Administratoren bei einem Zurücksetzen des Kennworts nicht ausgelöst werden soll.

Meint-Willem Gaasbeek
quelle
1

Kopieren Sie diesen folgenden Code und speichern Sie ihn als disable_email.php. Legen Sie diese Datei dann im Verzeichnis "wp-content / plugins /" ab. Und über das Admin-Panel aktiv.

<?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
quelle
??? Wie unterscheidet sich das von dem, was ich getan habe?
Interaktive
Hast du ein Plugin erstellt und deinen Code darauf platziert?
Sabbir Hasan
Ja, das dachte ich mir. Aber ich werde die Frage aktualisieren, wenn es nicht klar war!
Interaktiver
Versuch's jetzt. Ich habe die Antwort aktualisiert. Es sollte jetzt funktionieren!
Sabbir Hasan
Ha, ich habe das gerade gefunden und ausprobiert, aber es hat nicht funktioniert!
Interaktiver
1

Andere Antworten sind falsch, da diese das Senden von E-Mails deaktivieren, wenn E-Mails geändert werden, und nicht, wenn das Passwort geändert wird.

Das Hinzufügen des folgenden Codes in Ihre functions.php-Datei unter Ihrem aktiven Thema (oder alternativ in einem Plugin) sollte funktionieren. Arbeitete für mich für Version 4.6.1

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

Siehe offizielle Dokumentation

wynnset
quelle
Nicht alle anderen Antworten könnten falsch sein und es werden ständig neue Antworten gepostet. Sie sollten in Ihrer Antwort präziser sein, wenn Sie sich auf "andere" Antworten beziehen.
Sparky
0

Verwenden Sie die Funktion wp_set_password () anstelle von wp_update_user (), um das Passwort zu aktualisieren, da dies keine E-Mail-Benachrichtigung auslöst.

Andrew Schultz
quelle