我需要阻止网站上的任何用户创建电子邮件,我尝试覆盖负责邮件发送的任何可插入功能。唯一有效的是
$this->loader->add_filter( \'send_password_change_email\', $users, \'disable_email\' );
$this->loader->add_filter( \'send_email_change_email\', $users, \'disable_email\' );
the
disable_email
方法定义在
Users
班
class Users {
/**
* Function that will disable email sending when user is created
*
* @return bool False.
*/
public function disable_email() {
return false;
}
...
}
the
$users
只是
Users
类别,以及
$this->loader
是的实例
Loader
类,它保存筛选器。
但是当我创建WordPress用户时,我想阻止\'New User Registration\'
管理员和用户将获得的邮件。
我读到的是,我应该能够重写可插入函数,但唯一的方法是在插件的根文件中,在任何类之外定义它们。
所以我试过了
if( ! function_exists( \'wp_new_user_notification\' ) ) {
function wp_new_user_notification( $user_id ) {
return false
}
}
但是检查我的邮件收集器(我使用的是VVV),它不起作用,因为邮件仍在通过。
我甚至试着覆盖wp_mail()
功能相同,但什么都没有发生。邮件仍在处理中。
我没有主意了。我需要阻止邮件,但我不知道怎么做:/
最合适的回答,由SO网友:kero 整理而成
send_password_change_email
和send_email_change_email
如果用户更改了密码或为其创建了帐户,是否使用过滤器向用户发送电子邮件。
是的not 负责“在您的网站上注册新用户”邮件。这样做的功能是wp_new_user_notification()
, 这实际上是pluggable functions.
您可以简单地覆盖它,但我发现这样做非常棘手。相反,请删除操作(实际上wp_send_new_user_notifications
, 它只不过是函数本身的包装器)。行动gets added like so
add_action( \'register_new_user\', \'wp_send_new_user_notifications\' );
add_action( \'edit_user_created_user\', \'wp_send_new_user_notifications\', 10, 2 );
如果您“反转”该代码,它应该可以工作。假设加载程序与常规方法一样工作:
$this->loader->remove_action(
\'register_new_user\',
\'wp_send_new_user_notifications\'
);
$this->loader->remove_action(
\'edit_user_created_user\',
\'wp_send_new_user_notifications\',
10,
2
);