Nonaktifkan pemberitahuan email setelah perubahan kata sandi

13

Saya ingin menonaktifkan notifikasi email jika pengguna atau admin mengubah kata sandi pengguna.

Setelah beberapa Googleling saya datang untuk menemukan bahwa saya perlu membuat plugin dan menimpa wp_password_change_notificationfungsi yang ditemukan di pluggable.php.

Ini adalah plugin dan fungsinya:

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

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

Saya mengunggah file ke folder plugin saya dan mengaktifkannya di panel admin saya!

Ini perlu dilakukan dengan plugin karena pluggable.phpfile tersebut dimuat sebelum functions.phpfile.

Lagi pula sepertinya itu tidak berhasil untukku .......

Pengguna masih menerima email.

Saya menonaktifkan semua plugin dan menjalankan plugin pada instalasi yang bersih sehingga tidak ada gangguan

Itu WP_DEBUGjuga tidak menunjukkan kesalahan !!!

Adakah yang bisa memberi tahu saya apa yang harus diubah atau cara memperbaikinya dengan cara lain (kecuali modifikasi inti :-))

M.

Interaktif
sumber
1
Saya juga berjuang dan mencoba membuat / menggunakan plugin khusus, mengatur filter-WordPress ke false tetapi tidak ada yang berhasil ... Hanya hari ini saya menemukan plugin Manage Notification E-mails dan bekerja :)
Leander

Jawaban:

18

Untuk menonaktifkan pemberitahuan email pengguna, tambahkan ini dalam plugin atau tema:

add_filter( 'send_password_change_email', '__return_false' );

FYI wp_password_change_notification()mengontrol notifikasi email admin ketika pengguna mengubah kata sandi mereka

pengguna42826
sumber
10

Untuk menonaktifkan pemberitahuan email Admin saat pengguna menyetel ulang kata sandi mereka sendiri , buat sebuah Plugin (atau Harus Gunakan Plugin ) menggunakan potongan kode berikut:

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

Ini akan menghentikan pengiriman email berikut ke Email Administrator di Pengaturan> Umum:

Dari: WordPress <[email protected]>
Ke: [email protected]
Subjek: [WordPress] Kata Sandi Berubah

Kata sandi diubah untuk pengguna: nama pengguna

Menekan pemberitahuan email ini harus ditangani dengan plugin karena pluggable.phpdimuat lebih awal dari functions.phpfile tema .


Jika Anda ingin menonaktifkan pemberitahuan email Pengguna bahwa pengguna telah berhasil mengubah kata sandi mereka sendiri , gunakan filter berikut yang ditempatkan di functions.php:

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

Ini akan membuat email berikut tidak terkirim:

Dari: WordPress <[email protected]>
Ke: [email protected]
Subjek: [WordPress] Kata Sandi Berubah

Hai nama pengguna,

Pemberitahuan ini mengonfirmasi bahwa kata sandi Anda diubah di WordPress.

Jika Anda tidak mengubah kata sandi, silakan hubungi Administrator Situs di [email protected]

Email ini telah dikirim ke [email protected]

Salam,
Semua di WordPress
http://example.com/

rjb
sumber
2
Ada kesalahan besar dalam jawaban ini. Nama filter adalah "send_password_change_email" bukan "send_email_change_email". codex.wordpress.org/Plugin_API/Filter_Reference/…
Tristan CHARBONNIER
Dicatat. Untuk referensi, kedua filter terkait dan dapat digunakan untuk menonaktifkan notifikasi pengguna ketika email atau kata sandi diubah oleh pengguna. Kasus penggunaan tergantung pada pemberitahuan yang ingin Anda tekan - perubahan email atau perubahan kata sandi. Untuk gambaran yang jelas, lihat fungsi WordPress wp_update_user()di wp-includes/user.php: core.trac.wordpress.org/browser/tags/4.9.5/src/wp-includes/…
rjb
2

WordPress mengirim notifikasi secara default ketika pengguna diperbarui dengan wp_update_user().

Mencoba menimpa ini menggunakan filter, memodifikasi pluggable.php, atau menimpa dengan fungsi kosong, tidak berfungsi.

Alih-alih gunakan wp_set_password( $password, $user_id )ketika Anda tidak ingin email notifikasi dipicu untuk pengguna / admin pada pengaturan ulang kata sandi.

Meint-Willem Gaasbeek
sumber
1

Salin kode berikut ini dan simpan sebagai disable_email.php. Kemudian tempatkan file itu di direktori "wp-content / plugins /". Dan aktif dari Panel Admin.

<?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
sumber
??? Bagaimana ini berbeda dari apa yang saya lakukan?
Interaktif
Sudahkah Anda membuat plugin dan menempatkan kode Anda di situ?
Sabbir Hasan
Ya itulah yang saya pikir saya jelaskan. Tetapi saya akan memperbarui pertanyaan jika tidak jelas!
Interaktif
coba sekarang. Saya memperbarui jawabannya. Itu seharusnya bekerja sekarang!
Sabbir Hasan
Ha saya baru saja menemukan dan mencoba ini tetapi tidak berhasil!
Interaktif
1

Jawaban lain salah karena mereka menonaktifkan pengiriman email ketika email diubah, bukan ketika kata sandi diubah.

Menambahkan kode di bawah ini ke file functions.php Anda di bawah tema aktif Anda (atau sebagai alternatif dalam plugin) akan berfungsi. Bekerja untuk saya untuk versi 4.6.1

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

Lihat dokumentasi resmi

Kemenangan
sumber
Tidak semua jawaban lain bisa salah dan jawaban baru diposting setiap saat. Anda harus lebih spesifik dalam jawaban Anda ketika merujuk ke jawaban "lain".
Sparky
0

Gunakan fungsi wp_set_password () alih-alih wp_update_user () untuk memperbarui kata sandi karena ini tidak akan memicu pemberitahuan email.

Andrew Schultz
sumber