Vô hiệu hóa thông báo email sau khi thay đổi mật khẩu


13

Tôi muốn tắt thông báo email nếu người dùng hoặc quản trị viên thay đổi mật khẩu của người dùng.

Sau một số Google, tôi thấy rằng tôi cần phải tạo một plugin và ghi đè lên wp_password_change_notificationchức năng được tìm thấy pluggable.php.

Đây là plugin và chức năng:

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

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

Tôi đã tải tệp lên thư mục plugin của mình và kích hoạt nó trong bảng quản trị của mình!

Điều này cần phải được thực hiện với một plugin vì pluggable.phptệp được tải trước functions.phptệp.

Dù sao nó dường như không làm việc cho tôi .......

Người dùng vẫn nhận được email.

Tôi đã cắt tất cả các plugin và chạy plugin trên một bản cài đặt sạch để không bị nhiễu

Các WP_DEBUGkhông hiển thị bất kỳ lỗi nào cũng !!!

Bất cứ ai có thể cho tôi biết những gì cần thay đổi hoặc cách khắc phục nó theo bất kỳ cách nào khác (ngoại trừ sửa đổi cốt lõi :-))

M ..


1
Tôi cũng đã vật lộn và thử tạo / sử dụng một plugin tùy chỉnh, đặt các bộ lọc WordPress thành sai nhưng không có gì hoạt động ... Mới hôm nay tôi tình cờ thấy plugin Quản lý thông báo email và nó hoạt động :)
Leander

Câu trả lời:


18

Để tắt thông báo email của người dùng, hãy thêm thông báo này vào plugin hoặc chủ đề:

add_filter( 'send_password_change_email', '__return_false' );

FYI wp_password_change_notification()kiểm soát thông báo email của quản trị viên khi người dùng thay đổi mật khẩu của họ


10

Để tắt thông báo email của Quản trị viên khi người dùng đặt lại mật khẩu của riêng họ , hãy tạo Plugin (hoặc Phải sử dụng Plugin ) bằng đoạn mã sau:

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

Điều này sẽ ngăn email sau được gửi đến Email của Quản trị viên trong Cài đặt> Chung:

Từ: WordPress <wordpress@example.com>
Tới: admin@example.com
Chủ đề: [WordPress] Mật khẩu đã thay đổi

Mật khẩu đã thay đổi cho người dùng: tên người dùng

Việc loại bỏ thông báo email này phải được xử lý bằng một plugin vì pluggable.phpđược tải sớm hơn functions.phptệp của một chủ đề .


Thay vào đó, nếu bạn muốn tắt thông báo email của Người dùng rằng người dùng đã thay đổi thành công mật khẩu của riêng họ , hãy sử dụng bộ lọc sau được đặt trong functions.php:

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

Điều này sẽ ngăn chặn email sau được gửi:

Từ: WordPress <wordpress@example.com>
Tới: username@example.com
Chủ đề: [WordPress] Mật khẩu đã thay đổi

Xin chào tên người dùng

Thông báo này xác nhận rằng mật khẩu của bạn đã được thay đổi trên WordPress.

Nếu bạn không thay đổi mật khẩu, vui lòng liên hệ với Quản trị viên Trang web tại admin@example.com

Email này đã được gửi đến username@example.com

Trân trọng,
tất cả tại WordPress
http://example.com/


2
Có một sai lầm lớn trong câu trả lời này. Tên bộ lọc là "send_password_change_email" chứ không phải "send_email_change_email". codex.wordpress.org/Plugin_API/Filter_Reference/,
Tristan CHARBONNIER

Lưu ý Để tham khảo, hai bộ lọc có liên quan và có thể được sử dụng để tắt thông báo người dùng khi người dùng thay đổi email hoặc mật khẩu. Trường hợp sử dụng cho một trong hai tùy thuộc vào thông báo bạn muốn chặn - thay đổi email hoặc thay đổi mật khẩu. Để có hình ảnh rõ ràng, hãy tham khảo chức năng WordPress wp_update_user()trong wp-includes/user.php: core.trac.wordpress.org/browser/tags/4.9.5/src/wp-includes/ Lỗi
rjb

2

WordPress gửi thông báo theo mặc định khi người dùng được cập nhật wp_update_user().

Cố gắng ghi đè lên điều này bằng cách sử dụng các bộ lọc, sửa đổi pluggable.phphoặc ghi đè bằng một chức năng trống, không hoạt động.

Thay vào đó hãy sử dụng wp_set_password( $password, $user_id )khi bạn không muốn email thông báo được kích hoạt cho người dùng / quản trị viên khi đặt lại mật khẩu.


1

Sao chép mã sau đây và lưu dưới dạng vô hiệu hóa. Sau đó đặt tệp đó vào thư mục "wp-content / plugins /". Và hoạt động từ Bảng quản trị.

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

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

??? Làm thế nào khác nhau về những gì tôi đã làm?
Tương tác

Bạn đã thực hiện một plugin và đặt mã của bạn trên đó?
Sabbir Hasan

Vâng, đó là những gì tôi nghĩ rằng tôi đã mô tả. Nhưng tôi sẽ cập nhật câu hỏi nếu nó không rõ ràng!
Tương tác

thử ngay bây giờ. Tôi cập nhật câu trả lời. Nó nên hoạt động ngay bây giờ!
Sabbir Hasan

Hà tôi chỉ tìm và thử cái này nhưng không được!
Tương tác

1

Các câu trả lời khác là sai vì những người vô hiệu hóa gửi email khi email được thay đổi, không phải khi mật khẩu được thay đổi.

Thêm mã dưới đây vào tệp tin.php của bạn trong chủ đề đang hoạt động của bạn (hoặc thay thế trong một plugin) sẽ hoạt động. Làm việc cho tôi cho phiên bản 4.6.1

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

Xem tài liệu chính thức


Không phải tất cả các câu trả lời khác có thể sai và câu trả lời mới được đăng mọi lúc. Bạn nên cụ thể hơn trong câu trả lời của mình khi đề cập đến câu trả lời "khác".
Sparky

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.