将密码发送给用户而不是重置密码链接

时间:2019-02-06 作者:user1799722

我想向用户发送自定义密码,而不是重置密码链接。我在管理面板中找不到任何这样的选项。我该怎么做?

当用户重置密码时,我希望他在邮件中获得新密码。

我不想更改核心文件。而且我对WordPress有点陌生。

当前流量:用户获得重置密码链接,可以使用该链接设置密码
需要的流量:将向用户发送新密码以登录

1 个回复
SO网友:Krzysiek Dróżdż

您可以使用retrieve_password_message 钩住那个。

该过滤器应用如下:

apply_filters( \'retrieve_password_message\', string $message, string $key, string $user_login, WP_User $user_data )
这样您就可以访问$user_login 用户的。这意味着,您可以编写一个过滤器函数,为该用户创建随机密码,然后发送它。

function my_reset_password_email( $message, $key, $user_login, $user_data ) {
    $user_tmp_password = wp_generate_password(12);  // it will generate pass with length of 12 characters
    wp_set_password( $user_tmp_password, $user_data->ID );

    $message = "Looks like you forgot your password!\\n\\n";
    $message .= "...\\n";
    $message .= \'Your new temporary password: \' . $user_tmp_password . "\\n\\n";
    $message .= \'Kind Regards\';

    return $message;
}
add_filter( \'retrieve_password_message\', \'my_reset_password_email\', 10, 4 );
所以这会做你想做的,但是我真的建议不要使用这种方法。为什么?因为任何人都可以重置你的密码并阻止你登录。我只需要知道你的电子邮件地址就可以重置你的密码。如果我去“我忘了密码”并把你的电子邮件放在那里,你的密码会被更改,你会收到带有新密码的电子邮件。但是如果那封邮件变成垃圾邮件,你去了这个网站,你将无法登录,你也不知道为什么。。。

另外,在电子邮件中发送密码是一个非常非常糟糕的主意,你永远不应该这样做。

若你们真的,真的必须这样做,那个么至少在用户首次登录后强制用户更改密码。

相关推荐

为什么要使用wp_Reset_postdata()?

我无法理解wp\\u reset\\u postdata的用法。如果我不使用它,会出现什么问题?https://codex.wordpress.org/Function_Reference/wp_reset_postdata在文档中,什么是主查询和辅助查询?谢谢