所以我做了一个自定义的登录页面。
但是如果我按忘记密码,然后在我的自定义忘记密码页面上填写电子邮件。
然后按一下我重定向到的“发送新密码”按钮:wp-login.php?checkemail=confirm
而不是重定向回位于/login
我用于登录/忘记密码页面的代码如下:
<?php
session_start();
$attributes['lost_password_sent'] = isset( $_REQUEST['checkemail'] ) && $_REQUEST['checkemail'] == 'confirm';
get_header(); ?>
<div class="page page--login page--border">
<div class="banner">
<h1></h1>
</div>
<div class="container">
<div class="row">
<div class="col-sm-12">
<h1><?php the_title(); ?></h1>
</div>
<div class="col-sm-6">
<div class="page--login__content">
<?php the_content() ?>
</div>
</div>
<div class="col-sm-6">
<div class="page--login__form">
<?php if ( is_user_logged_in() ) { ?>
<h3>U bent al ingelogd, <a href="<?php echo wp_logout_url(home_url()); ?>">uitloggen?</a></h3>
<?php } else { ?>
<?php if (is_page('wachtwoord-vergeten')) : ?>
<?php if (isset($_SESSION['post_error'])) :
foreach ($_SESSION['post_error'] as $error => $message) : ?>
<p class="error"><?php echo $message[0]; ?></p>
<?php endforeach;
unset($_SESSION['post_error']);
endif; ?>
<form name="lostpasswordform" id="lostpasswordform" class="lostpasswordform" action="<?= site_url("/wp-login.php?action=lostpassword") ?>" method="post">
<label for="user_login">Email</label>
<input type="text" name="user_login" id="user_login" value="" size="20" placeholder="" required class="loginform--input" />
<input name="wp-submit" id="wp-submit" type="submit" class="button button--secondary button--login" value="Wachtwoord resetten" />
</form>
<?php elseif (is_page('wachtwoord-resetten')) :
if (isset($_GET["action"])) {
$hash = $_GET["request"];
$date = date("jmY");
$hashcheck = md5('requestdate=' . $date);
$rp_key = $_REQUEST['key'];
$rp_login = $_REQUEST['login'];
$user = check_password_reset_key( $rp_key, $rp_login );
if ($hashcheck != $hashcheck){
echo "<h3>Deze link is verlopen.</h3>";
} elseif ( ! $user || is_wp_error( $user ) ) {
if ( $user && $user->get_error_code() === 'expired_key' ) {
echo "<h3>Deze link is verlopen.</h3>";
} else {
echo "<h3>Deze link is niet geldig.</h3>";
}
} else {
if ( 'POST' == $_SERVER['REQUEST_METHOD'] ) {
if ( isset( $_POST['pass1'] ) ) {
if ( $_POST['pass1'] != $_POST['pass2'] ) {
echo '<p class="error">Wachtwoorden komen niet overeen. Probeer het opnieuw.</p>';
} else {
reset_password( $user, $_POST['pass1'] );
$url = get_home_url() . '/login';
wp_redirect( $url );
$_SESSION['change_pw_success'] = true;
}
} else {
echo '<p class="error">Ongeldige aanvraag.</p>';
}
} ?>
<form name="frmreset" id="frmreset" action="" method="post">
<label for="pass1">Wachtwoord</label>
<input type="password" name="pass1" id="pass1" class="input" size="20" value="" autocomplete="off" placeholder="" required/>
<label for="pass2">Wachtwoord herhalen</label>
<input type="password" name="pass2" id="pass2" class="input" size="20" value="" autocomplete="off" placeholder="" required/>
<input name="wp-submit" id="wp-submit" type="submit" class="button button--secondary button--login" value="Wachtwoord resetten" />
<input type="hidden" name="task" value="reset" />
</form>
<?php
}
} else {
echo "<h3>Deze link is ongeldig.</h3>";
} ?>
<?php else: ?>
<?php if (isset($_SESSION['invalid_login'])) : ?>
<p class="error"><?php echo $_SESSION['invalid_login']; ?></p>
<?php unset($_SESSION['invalid_login']);
endif; ?>
<?php if (isset($_GET['checkemail']) && $_GET['checkemail'] == 'confirm') : ?>
<p class="success">De mail is succesvol verstuurd!</p>
<?php unset($_SESSION['invalid_login']);
endif; ?>
<?php if ( $_SESSION['change_pw_success'] == true ) : ?>
<p class="success">Wachtwoord is succesvol veranderd!</p>
<?php $_SESSION['change_pw_success'] = false ; ?>
<?php endif; ?>
<form name="loginform" id="loginform" class="loginform" action="<?= site_url("/wp-login.php") ?>" method="post">
<label for="user_login">Gebruikersnaam</label>
<input name="log" id="user_login" class="loginform--input" type="text" placeholder="" required />
<label for="user_pass">Wachtwoord</label>
<input name="pwd" id="user_pass" class="loginform--input" type="password" placeholder="" required />
<input type="hidden" name="redirect_to" value="<?= site_url("") ?>" />
<a class="forgot" href="/wachtwoord-vergeten/">Wachtwoord vergeten?</a>
<input name="wp-submit" id="wp-submit" type="submit" class="button button--secondary button--login" value="Inloggen" />
</form>
<?php endif; ?>
<?php } ?>
</div>
</div>
</div>
</div>
<?php
?>
</div>
必须进行哪些更改,才能转到/login
而不是/wp-login.php?checkemail=confirm