我一直在学习一些构建前端注册/登录系统的教程。具体而言,此链接-http://cubiq.org/front-end-user-registration-and-login-in-wordpress
一切都很好,但是我对密码设置有问题。目前,注册后,系统使用Wordpress自己的注册码发送欢迎/创建密码电子邮件。单击带有登录名的电子邮件中的链接时(&A);输入GET,将运行以下函数:
function custom_login_init () {
$action = isset($_REQUEST[\'action\']) ? $_REQUEST[\'action\'] : \'login\';
if ( isset( $_POST[\'wp-submit\'] ) ) {
$action = \'post-data\';
} else if ( isset( $_GET[\'reauth\'] ) ) {
$action = \'reauth\';
} else if ( isset($_GET[\'key\']) ) {
$action = \'resetpass-key\';
}
// redirect to change password form
if ( $action == \'rp\' || $action == \'resetpass\' ) {
wp_redirect( home_url(\'/member-login/?action=resetpass\') );
exit;
}
// redirect from wrong key when resetting password
if ( $action == \'lostpassword\' && isset($_GET[\'error\']) && ( $_GET[\'error\'] == \'expiredkey\' || $_GET[\'error\'] == \'invalidkey\' ) ) {
wp_redirect( home_url( \'/member-login/?action=forgot&success=wrongkey&error=\'.$_GET[\'error\'] ) );
exit;
}
if (
$action == \'post-data\' || // don\'t mess with POST requests
$action == \'reauth\' || // need to reauthorize
$action == \'resetpass-key\' || // password recovery
$action == \'logout\' // user is logging out
) {
return;
}
wp_redirect( home_url( \'/member-login/\' ) );
exit;
}
add_action(\'login_init\', \'custom_login_init\');
这使得重置/设置密码过程在很大程度上可以自行运行,但它最终会将用户重定向到“设置密码”表单,我认为该表单需要包含带有登录名和密钥的隐藏字段。
<h1 class="entry-title">Set Your Password</h1>
<p>Fill out the form below to set your password.</p>
<form name="resetpasswordform" action="<?php echo site_url(\'wp-login.php?action=resetpass\', \'login_post\') ?>" method="post">
<input type="hidden" id="user_login" name="rp_login" value="<?php echo esc_attr( $_REQUEST[\'login\'] ); ?>" autocomplete="off" />
<input type="hidden" name="rp_key" value="<?php echo esc_attr( $_REQUEST[\'key\'] ); ?>" />
<p class="form-password">
<label for="pass1">New Password</label>
<input class="text-input" name="pass1" type="password" id="pass1">
</p>
<p class="form-password">
<label for="pass2">Confirm Password</label>
<input class="text-input" name="pass2" type="password" id="pass2">
</p>
<input type="hidden" name="redirect_to" value="/user/?action=resetpass&success=1">
<p class="submit"><input type="submit" name="wp-submit" id="wp-submit" value="Get New Password" /></p>
</form>
然而,我不知道从何处获取表单字段的这些内容-我看不到它们被设置到cookie中,它们当时没有通过get或POST传递,一旦到达重定向,它们似乎就会从查询字符串中删除。。。
昨天我在google上搜索了很多信息,但似乎找不到最新的信息。
有人能解释一下这个过程是如何运作的吗?你看到我在函数或表单中缺少的东西了吗?