禁用用户注册密码电子邮件

时间:2015-08-21 作者:Lisa Cerilli

所以,众所周知,WordPress 4.3有一个新的密码系统。不幸的是,这个新系统已经失去了NOT 向新用户发送电子邮件。

我的客户使用的系统是,他向客户发送一封自定义电子邮件,手动注册他们的电子邮件,然后向他们发送一封带有自定义消息的登录信息的电子邮件。我们知道这个新系统正在努力提高安全性,但这并没有达到他想要的控制程度。

我在搜索关闭这些电子邮件的解决方案时发现了以下代码,但我认为它们只在用户的电子邮件为以前注册的用户更改时关闭通知电子邮件,而不是在首次创建时关闭通知电子邮件:

add_filter( \'send_password_change_email\', \'__return_false\');
add_filter( \'send_email_change_email\', \'__return_false\');
有人知道有什么方法可以关闭注册后发送的这些初始密码电子邮件吗?

非常感谢。

5 个回复
最合适的回答,由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;
}
有关更多信息,请查看codexhere.

SO网友:Simon Blackbourn

这个wp_new_user_notification 函数是可插入的,所以您可以通过定义自己的来覆盖它。您应该能够从wp-includes/pluggable.php 插入插件(或functions.php) 并删除发送电子邮件的行。

SO网友:fandasson

要在主题中解决此问题,请创建新mu-plugin 通过创建新文件wp_new_user_notifications.php (名字由你决定)并把它放进去wp-content/mu-plugins 文件夹如果没有这样的文件夹,请创建一个。请记住,将php文件直接放入文件夹,而不是任何子文件夹。

然后继续作为Simon suggested - 复制wp_new_user_notifications.php 方法来自wp-includes/pluggable.php 进入您的全新wp_new_user_notifications.php 根据需要归档和修改。

回答您的问题:为了关闭初始密码,电子邮件足以删除最后一封wp_mail 方法调用。

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\');
  }
}

结束

相关推荐

BCC email to subscribers

我有一个自定义的帖子类型“月报”,需要在发布新公告时向订阅者发送一封盲邮件。下面的代码可以发送给订阅者,但所有人都可以看到电子邮件。如何将代码修改为密件抄送订户?add_action( \'transition_post_status\', \'send_mails_on_publish\', 10, 3 ); function send_mails_on_publish( $new_status, $old_status, $post ) { if ( \'publis