自定义登录页面出现问题

时间:2018-12-14 作者:Kurisubo

我正在尝试创建一个合作伙伴门户页面(该页面用于我们的业务合作伙伴查看特定于他们的重要信息),因此希望创建一个自定义登录页面。

我已经在网上阅读了许多教程,我完全按照说明进行操作,但它根本不起作用。

我通过制作页面模板并将其放入自定义主题来创建登录页面。

以下是模板代码:

<?php 
/** 
* Template Name: Log in
*/ 
get_header(); 


if($_POST) { 

global $wpdb; 

//We shall SQL escape all inputs 
$username = $wpdb->escape($_REQUEST[\'username\']); 
$password = $wpdb->escape($_REQUEST[\'password\']); 
$remember = $wpdb->escape($_REQUEST[\'rememberme\']); 

if($remember) $remember = "true"; 
else $remember = "false"; 

$login_data = array(); 
$login_data[\'user_login\'] = $username; 
$login_data[\'user_password\'] = $password; 
$login_data[\'remember\'] = $remember; 

$user_verify = wp_signon( $login_data, false );

if ( is_wp_error($user_verify) ) { 
    echo \'<span class="mine">Invalid Login Details</span>\'; 
} else { 
    echo "<script type=\'text/javascript\'>window.location.href=\'". home_url() . \'/partner-portal/\' ."\'</script>"; 
    exit(); 
} 
} else {  

}?> 

<form id="wp_login_form" action="<?php echo home_url(); ?>/login/" 
method="post">
<div><img src="this-is-an-image.png"/></div>
<label for="tab-1" class="tab">Sign In</label><br>

<label class="my-username" >Username</label><br> 
<input type="text" name="username" class="text" value=""><br> 
<label class="my-password" >Password</label><br>

<input type="password" name="password" class="text" value=""> <br> 
<label> 
<input class="myremember" name="rememberme" type="checkbox" value="forever"> 
<span class="hey">Remember me</span></label> 
<br><br> 
<input type="submit" id="submitbtn" name="submit" value="Login"> 
</form>
<?php get_footer(); ?>
注意:当我输入错误的凭据时,我会得到预期的“无效登录详细信息”。

当我输入正确的凭据时,它会将我重定向到/partner portal/,但是运行quick is\\u user\\u logged\\u in()会显示该用户未登录。

任何帮助都将不胜感激!

1 个回复
SO网友:Tejas Gajjar

您需要在else条件下设置以下代码

wp_clear_auth_cookie();     
wp_set_current_user($user_verify ->ID);
wp_set_auth_cookie($user_verify ->ID, true);
希望这能帮助你,让我知道这是否有帮助