Wyłącz powiadomienia e-mail po zmianie hasła


14

Chcę wyłączyć powiadomienie e-mail, jeśli użytkownik lub administrator zmieni hasło użytkownika.

Po pewnym Googlelingu odkryłem, że muszę utworzyć wtyczkę i zastąpić wp_password_change_notificationfunkcję znalezioną w pluggable.php.

To jest wtyczka i funkcja:

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

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

Przesłałem plik do folderu wtyczek i aktywowałem go w panelu administracyjnym!

Należy to zrobić za pomocą wtyczki, ponieważ pluggable.phpplik jest ładowany przed functions.phpplikiem.

W każdym razie wydaje mi się, że to nie działa .......

Użytkownik nadal otrzymuje wiadomość e-mail.

Poddałem wszystkie wtyczki i uruchomiłem wtyczkę na czystej instalacji, aby nie było zakłóceń

WP_DEBUGNie pokazuje żadnych błędów, jak również !!!

Czy ktoś może mi powiedzieć, co zmienić lub jak to naprawić w inny sposób (oprócz modyfikacji rdzenia :-))

M.


1
Walczyłem również i próbowałem utworzyć / użyć niestandardowej wtyczki, ustawiając filtry WordPress na wartość false, ale nic nie działało ... Właśnie dzisiaj natknąłem się na wtyczkę Manage Notification E-mail i działa :)
Leander

Odpowiedzi:


20

Aby wyłączyć powiadomienia e-mail użytkownika, dodaj to do wtyczki lub motywu:

add_filter( 'send_password_change_email', '__return_false' );

FYI wp_password_change_notification()kontroluje powiadomienia e-mail administratora, gdy użytkownik zmieni swoje hasło


11

Aby wyłączyć powiadomienie e-mail administratora, gdy użytkownik zresetuje własne hasło , utwórz wtyczkę (lub wtyczkę, której trzeba użyć ), używając następującego fragmentu kodu:

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

Dzięki temu następujący e-mail nie zostanie wysłany na adres e-mail administratora w Ustawieniach> Ogólne:

Od: WordPress <wordpress@example.com>
Do: admin@example.com
Temat: [WordPress] Hasło zmienione

Hasło zostało zmienione dla użytkownika: nazwa użytkownika

Ukrywanie tego powiadomienia e-mail musi być obsługiwane przez wtyczkę, ponieważ pluggable.phpjest ładowana wcześniej niż plik motywu functions.php.


Jeśli zamiast tego chcesz wyłączyć powiadomienie e-mail użytkownika, że użytkownik pomyślnie zmienił swoje hasło , użyj następującego filtru umieszczonego w functions.php:

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

Pomoże to w wysłaniu następującego e-maila:

Od: WordPress <wordpress@example.com>
Do: nazwa użytkownika@example.com
Temat: [WordPress] Hasło zmienione

Cześć nazwa użytkownika,

Ta informacja potwierdza, że ​​twoje hasło zostało zmienione w WordPress.

Jeśli nie zmieniłeś hasła, skontaktuj się z administratorem witryny pod adresem admin@example.com

Ten e-mail został wysłany na nazwę użytkownika@example.com

Pozdrawiam,
wszystko na WordPress
http://example.com/


2
W tej odpowiedzi jest duży błąd. Nazwa filtra to „send_password_change_email”, a nie „send_email_change_email”. codex.wordpress.org/Plugin_API/Filter_Reference/…
Tristan CHARBONNIER

Odnotowany. Dla porównania dwa filtry są powiązane i mogą być użyte do wyłączenia powiadomienia użytkownika, gdy użytkownik zmieni adres e-mail lub hasło. Przypadek użycia albo zależy od tego, które powiadomienie chcesz pominąć - zmiana adresu e-mail lub zmiana hasła. Aby uzyskać wyraźny obraz, zapoznaj się z funkcją WordPress wp_update_user()w wp-includes/user.php: core.trac.wordpress.org/browser/tags/4.9.5/src/wp-includes/…
rjb

2

WordPress domyślnie wysyła powiadomienie, gdy użytkownik jest aktualizowany za pomocą wp_update_user().

Próba zastąpienia tego przy użyciu filtrów, modyfikacji pluggable.phplub zastąpienia pustą funkcją nie działa.

Zamiast tego użyj, wp_set_password( $password, $user_id )jeśli nie chcesz, aby e-mail z powiadomieniem był uruchamiany dla użytkowników / administratorów po zresetowaniu hasła.


1

Skopiuj poniższy kod i zapisz jako disable_email.php. Następnie umieść ten plik w katalogu „wp-content / plugins /”. I aktywny z panelu administracyjnego.

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

if (!function_exists('wp_password_change_notification')) {
    function wp_password_change_notification($user) {
        return;
    }
}
?>

??? Czym to się różni od tego, co zrobiłem?
Interaktywny

Czy stworzyłeś wtyczkę i umieściłeś na niej swój kod?
Sabbir Hasan

Tak, tak myślałem, że opisałem. Ale zaktualizuję pytanie, jeśli nie było jasne!
Interaktywny

Spróbuj teraz. Zaktualizowałem odpowiedź. Powinno już działać!
Sabbir Hasan

Ha Właśnie to znalazłem i spróbowałem, ale nie zadziałało!
Interaktywny

1

Inne odpowiedzi są błędne, ponieważ wyłączają wysyłanie wiadomości e-mail po zmianie wiadomości e-mail, a nie po zmianie hasła.

Dodanie poniższego kodu do pliku functions.php pod aktywnym motywem (lub alternatywnie we wtyczce) powinno działać. Pracował dla mnie dla wersji 4.6.1

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

Zobacz oficjalną dokumentację


Nie wszystkie inne odpowiedzi mogą być błędne, a nowe odpowiedzi są cały czas publikowane. Powinieneś być bardziej szczegółowy w swojej odpowiedzi, odnosząc się do „innych” odpowiedzi.
Sparky,

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.