更改密码后禁用电子邮件通知


14

如果用户或管理员更改了用户密码,我想禁用电子邮件通知。

经过一番Googleling之后,我发现我需要创建一个插件并覆盖中wp_password_change_notification找到的功能pluggable.php

这是插件和功能:

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

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

我将文件上传到了我的插件文件夹,并在管理面板中将其激活!

这需要使用插件来完成,因为pluggable.php文件先于functions.php文件加载。

无论如何,这似乎对我不起作用。

用户仍然会收到电子邮件。

我禁用了所有插件,并以全新安装方式运行该插件,因此不会产生干扰

WP_DEBUG不显示任何错误,以及!

有人可以告诉我要更改什么或如何以其他方式解决它(核心修改除外:-))

M.


1
我还苦苦尝试并尝试创建/使用自定义插件,将WordPress过滤器设置为false,但没有任何效果...就在今天,我偶然发现了Manage Notification E-mails插件,它起作用了:)
Leander

Answers:


20

要禁用用户电子邮件通知,请将其添加到插件或主题中:

add_filter( 'send_password_change_email', '__return_false' );

wp_password_change_notification()当用户更改密码时,FYI 控制管理员电子邮件通知


11

要在用户重设自己的密码时禁用管理员电子邮件通知使用以下代码段创建一个插件(或“ 必须使用插件”):

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

这将阻止以下电子邮件发送到“设置”>“常规”中的管理员电子邮件中:

发件人: WordPress <wordpress@example.com>
收件人: admin@example.com
主题: [WordPress]密码已更改

用户密码已更改:username

禁止使用插件处理此电子邮件通知,因为pluggable.php它早于主题functions.php文件加载。


如果你想,而不是禁用用户电子邮件通知,一个用户已经成功地改变了自己的密码,请使用以下过滤器放置在functions.php

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

这将禁止发送以下电子邮件:

发件人: WordPress <wordpress@example.com>
收件人: username@example.com
主题: [WordPress]密码已更改

嗨,用户名,

此通知确认您的密码已在WordPress上更改。

如果您没有更改密码,请通过admin@example.com与站点管理员联系。

该电子邮件已发送至username@example.com

问候,
全部在WordPress
http://example.com/


2
这个答案有一个大错误。过滤器名称是“ send_password_change_email”,而不是“ send_email_change_email”。 codex.wordpress.org/Plugin_API/Filter_Reference/...
特里斯坦CHARBONNIER

注意。作为参考,这两个过滤器是相关的,可用于在用户更改电子邮件密码时禁用用户通知。两种情况的用例取决于您要禁止显示的通知-更改电子邮件或更改密码。对于一个清晰的画面,指的是WordPress的功能wp_update_user()wp-includes/user.phpcore.trac.wordpress.org/browser/tags/4.9.5/src/wp-includes/...
RJB

2

当用户使用进行更新时,WordPress默认情况下会发送通知wp_update_user()

尝试使用过滤器覆盖此属性,修改pluggable.php或使用空函数覆盖均无效。

相反,使用wp_set_password( $password, $user_id )当你不想被触发在密码重置用户/管理员的电子邮件通知你。


1

复制以下代码,并另存为disable_email.php。然后将该文件放在“ wp-content / plugins /”目录中。并在管理面板中处于活动状态。

<?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 2015年

是的,这就是我所描述的。但如果不清楚,我将更新问题!
互动

现在试试。我更新了答案。现在应该可以工作了!
Sabbir Hasan 2015年

哈,我刚刚找到并尝试了此方法,但没有成功!
互动

1

其他答案是错误的,因为那些答案会在更改电子邮件时(而不是更改密码时)禁止发送电子邮件。

将下面的代码添加到活动主题下(或插件中)的functions.php文件中应该可以。为我工作的版本4.6.1

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

参阅官方文件


并非所有其他答案都可能是错误的,并且新答案始终会发布。当提及“其他”答案时,您应该在答案中更具体。
Sparky

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.