经过一番谷歌搜索后,我发现我需要创建一个插件并覆盖
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 楼
要禁用用户电子邮件通知,请将其添加到插件或主题中:add_filter( 'send_password_change_email', '__return_false' );
FYI
wp_password_change_notification()
控制用户更改密码时的管理员电子邮件通知#2 楼
要在用户重置自己的密码时禁用管理员电子邮件通知,请使用以下代码段创建插件(或必须使用插件):/**
* 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
用户的密码已更改:用户名
禁止此电子邮件通知必须使用插件来处理,因为
pluggable.php
的加载早于主题的functions.php
文件。如果您要禁用用户已成功更改其密码的用户电子邮件通知,请使用
functions.php
中放置的以下过滤器:/**
* Disable User Notification of Password Change Confirmation
*/
add_filter( 'send_password_change_email', '__return_false' );
这将禁止发送以下电子邮件:
发件人:WordPress
您好用户名,
此通知确认您的密码已在WordPress上更改。
如果您未更改密码,请通过admin @与网站管理员联系。 example.com
这封电子邮件已经发送到username@example.com
问候,
全部在WordPresshttp://example.com/
评论
这个答案有一个大错误。过滤器名称是“ send_password_change_email”,而不是“ send_email_change_email”。 codex.wordpress.org/Plugin_API/Filter_Reference/…
– Tristan CHARBONNIER
18-4-6在8:29
注意。作为参考,这两个过滤器是相关的,可用于在用户更改电子邮件或密码时禁用用户通知。两者的用例取决于您要禁止显示的通知-更改电子邮件或更改密码。要获得清晰的图片,请参阅wp-includes / user.php中的WordPress函数wp_update_user():core.trac.wordpress.org/browser/tags/4.9.5/src/wp-includes/…
–rjb
18-4-6在16:15
#3 楼
复制以下代码,并另存为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;
}
}
?>
评论
???这和我做的有什么不同?
–交互式
15-10-23在8:57
您是否制作了插件并在上面放置了代码?
– Sabbir Hasan
15年10月23日在9:05
是的,这就是我所描述的。但如果不清楚,我将更新问题!
–交互式
2015年10月23日在9:09
现在试试。我更新了答案。现在应该可以工作了!
– Sabbir Hasan
15年10月23日在9:13
哈,我刚刚找到并尝试了此方法,但没有成功!
–交互式
15年10月23日在9:15
#4 楼
默认情况下,当用户使用wp_update_user()
更新时,WordPress会发送通知。 尝试使用过滤器覆盖,修改
pluggable.php
或使用空函数覆盖均不起作用。当您不希望收到通知时,请改用
wp_set_password( $password, $user_id )
-mail将在密码重置后为用户/管理员触发。#5 楼
其他答案是错误的,因为这些更改会在更改电子邮件时(而不是更改密码时)禁止发送电子邮件。将下面的代码添加到活动主题下(或在插件中)的functions.php文件中应该可以。为我工作的版本4.6.1
/**
* Disable sending of the password change email
*/
add_filter( 'send_password_change_email', '__return_false' );
请参阅官方文档
评论
并非所有其他答案都可能是错误的,并且新答案始终会发布。当提及“其他”答案时,您应该在答案中更具体。
–闪闪发光
19/12/10在20:01
#6 楼
如果您使用的是Woocommerce:自WC 3.8.0起(2019年11月),现在有一个专用的过滤器钩子用于此:
add_filter('woocommerce_disable_password_change_notification', '__return_true');
应禁止密码更改通知。
评论
该挂钩仅适用于使用woocommerce时(woocommerce 3.8,而不是wordpress 3.8)
–拉法
20年5月13日在9:22
@Rafa Oops,是的,我一直在进行大量的WC + WP开发,以至于我的台词变得模糊了。我已经调整了答案,谢谢。
–迈克波特
20-05-14在12:25
#7 楼
使用函数wp_set_password()而不是wp_update_user()来更新密码,因为这不会触发电子邮件通知。#8 楼
这个答案https://wordpress.stackexchange.com/a/266006/73347是否仍然可以禁用向管理员发送密码重置电子邮件的功能?/**
* 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过滤器设置为false,但无济于事...就在今天,我偶然发现了Manage Notification E-mails插件,它起作用了:)