我有一个页面,其中有一个名为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>
答案 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
}