如何重定向到"登录页面"或者"购买页面"取决于用户登录状态

时间:2017-05-24 18:20:56

标签: php wordpress

我有一个页面,其中有一个名为buy.Hhile的按钮,如果用户已登录则单击购买按钮,如果用户未登录则转到购买页面。我正在尝试实施这使用" is_user_logged_in()"。我试过"标题:位置"这给了我一个警告,因为我最初是为get_header()编写的。我已经尝试使用javascript,但似乎没有任何工作。我的代码请帮助我。

<script>

function myfunction() {
    location.reload();
}    

function redirect() {
    <?php if(!is_user_logged_in()){
        ?>
  window.location.replace("login.php");
  <?php
}else{
    ?>
    window.location.replace("buy.php");
    <?php }
    ?>

}
}
</script>
<?php
get_header();
?> 

<form action="" method="post">
<div>
<br>
<input type="submit" name="delete" value="Delete" class="btn btn-primary" id="show" onclick="myfunction()">
<input type="submit" name="buy" value="Buy Now" class="btn btn-primary" onclick="redirect()">

</div>

3 个答案:

答案 0 :(得分:0)

没有必要编写JS来检查用户登录状态并相应地重定向。您可以按照以下指示进行操作。

在get_header()之前的页面顶部,你可以写这个。

if ( !is_user_logged_in() ) {
   auth_redirect();
}

此if条件检查用户是否登录后将继续加载页面的其余部分,如果用户未登录,则会强制用户通过登录页面进行身份验证。

答案 1 :(得分:0)

您可以将此php脚本放在页面顶部,而不是使用onClick。

if(isset($_POST['buy'])){
   if(is_user_logged_in()){
       header("Location:buy.php");
       exit();
    }
   else{
       header("Location:login.php");
       exit();
    }
}

//必须在生成任何输出之前放置此代码/应放在顶部

答案 2 :(得分:0)

if ( !is_user_logged_in() && !is_page( 'login' ) && ! is_page('register') ) {
   //redirect user, create account with them, do a hoola-hoop
}

来源: https://stackoverflow.com/a/44166973/4573789