您可以使用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 );
所以这会做你想做的,但是我真的建议不要使用这种方法。为什么?因为任何人都可以重置你的密码并阻止你登录。我只需要知道你的电子邮件地址就可以重置你的密码。如果我去“我忘了密码”并把你的电子邮件放在那里,你的密码会被更改,你会收到带有新密码的电子邮件。但是如果那封邮件变成垃圾邮件,你去了这个网站,你将无法登录,你也不知道为什么。。。
另外,在电子邮件中发送密码是一个非常非常糟糕的主意,你永远不应该这样做。
若你们真的,真的必须这样做,那个么至少在用户首次登录后强制用户更改密码。