所以,众所周知,WordPress 4.3有一个新的密码系统。不幸的是,这个新系统已经失去了NOT 向新用户发送电子邮件。
我的客户使用的系统是,他向客户发送一封自定义电子邮件,手动注册他们的电子邮件,然后向他们发送一封带有自定义消息的登录信息的电子邮件。我们知道这个新系统正在努力提高安全性,但这并没有达到他想要的控制程度。
我在搜索关闭这些电子邮件的解决方案时发现了以下代码,但我认为它们只在用户的电子邮件为以前注册的用户更改时关闭通知电子邮件,而不是在首次创建时关闭通知电子邮件:
add_filter( \'send_password_change_email\', \'__return_false\');
add_filter( \'send_email_change_email\', \'__return_false\');
有人知道有什么方法可以关闭注册后发送的这些初始密码电子邮件吗?
非常感谢。
最合适的回答,由SO网友:sxalexander 整理而成
您可以在发送此电子邮件之前使用phpmailer_init 钩
默认情况下,此挂钩在发送任何电子邮件之前触发。在下面的函数中,$phpmailer 将是的实例PHPMailer, 您可以使用其方法删除默认收件人,并在发送电子邮件之前对其进行操作。
add_action(\'phpmailer_init\', \'wse199274_intercept_registration_email\');
function wse199274_intercept_registration_email($phpmailer){
$admin_email = get_option( \'admin_email\' );
# Intercept username and password email by checking subject line
if( strpos($phpmailer->Subject, \'Your username and password info\') ){
# clear the recipient list
$phpmailer->ClearAllRecipients();
# optionally, send the email to the WordPress admin email
$phpmailer->AddAddress($admin_email);
}else{
#not intercepted
}
}
SO网友:Emetrop
实际上,这取决于您如何创建新用户。如果您是从管理-用户-添加新功能中执行此操作,那么您是对的。不幸的是,在4.3中,您不能禁用发送通知电子邮件。但是如果你真的想创建一个没有电子邮件的新用户,有一种方法。
你可以创建一个小插件,通过wp_insert_user 函数,默认情况下不发送任何电子邮件。
这个函数可以这样调用。
wp_insert_user( $userdata );
其中
userdata 参数是一个数组,您可以在其中传递所有需要的信息。
$userdata = array(
\'user_login\' => \'login\',
\'user_pass\' => \'password\',
);
$user_id = wp_insert_user( $userdata ) ;
//On success
if ( ! is_wp_error( $user_id ) ) {
echo "User created : ". $user_id;
}
有关更多信息,请查看codex
here.
SO网友:Philip
add_filter(\'send_password_change_email\', \'__return_false\');
工作。但重要的是,它添加到插件中的是它自己,而不是功能。主题的php。
喜欢
class ... {
public function __construct() {
...
$this->init_hooks();
}
public function init_hooks() {
add_filter(\'send_password_change_email\', \'__return_false\');
}
}