[英]Bigcommerce - How to redirect users to login page from homepage if not logged in
如果客戶未登錄,我如何讓他們看到登錄頁面而不是主頁? 我嘗試使用以下代碼,但是即使客戶已登錄,它也會重定向到登錄頁面。
<script language="javascript" type="text/javascript">//<![CDATA[
if (window.location.href.toString() == "http://www.mywebsite.com/")
{
window.location.assign("http://www.mywebsite.com/login.php");
}
//]]></script>
您可以通過查看來自%%GLOBAL_LoginOrLogoutText%%
代碼的歡迎消息來檢測用戶是否已登錄。
因此,如果未顯示歡迎文本,請將其重定向到login.php頁面。
還要注意,您需要警告一下,如果它們已經在該頁面上,則無需再次(一次又一次地)重定向它們。
前幾天我建立了這個倉庫,可以檢查是否從商店的任何頁面登錄了客戶。
//this will allow you to mention the cookie by index
function getCookie(name) {
var value = "; " + document.cookie;
var parts = value.split("; " + name + "=");
if (parts.length == 2) return parts.pop().split(";").shift();
}
//set variable that will check if login email exists
var loggedIn = getCookie('LoginEmail');
//logic that will output different content based on the loggedIn Status
if(typeof loggedIn === 'undefined'){
console.log("They are not logged in!");
var notLoggedIn = '<ul><li><a href="/membership/">Become a Member</a></li></ul><p>Already a member? <a href="/login.php">Sign In >></a></p>';
$(notLoggedIn).appendTo(".LandingInnerContent");
}
else{
console.log("They are logged in! ");
var isLoggedIn = '<ul><li><a href="/membership/">Shop Now</a></li></ul><p>Access <a href="/account.php">Account Page >></a></p>';
$(isLoggedIn).appendTo(".LandingInnerContent");
}
這將允許您基於cookie進行檢查,並且可以顯示其他內容或重定向到其他頁面。
不幸的是,'%% GLOBAL_LoginOrLogoutText %%'變量通常不起作用,因此我想出了一個JavaScript解決方案。
首先,我檢查%% GLOBAL_CurrentCustomerFirstName %%的值,然后使用jQuery填寫登錄名或注冊名或注銷“ li”。
<li class="login-register">
<script type="text/javascript">
var GlobalFname="%%GLOBAL_CurrentCustomerFirstName%%";
if (GlobalFname !="" && GlobalFname!="Guest"){
$('li.login-register').html('<a href="%%GLOBAL_ShopPath%%/login.php?action=logout">LOG OUT</a>');
} else {
$('li.login-register').html('<a href="%%GLOBAL_ShopPath%%/login.php">LOGIN</a> OR <a href="%%GLOBAL_ShopPath%%/login.php?action=create_account">REGISTER</a>');
};
</script>
</li>
您可以像這樣簡單地查找“簽出”文本的存在。 對於店面-網頁中的任何網頁,此代碼將顯示在“網頁詳細信息”的“頁面內容”上。 您必須使用編輯器上的HTML按鈕並將其粘貼為原始HTML。
<script type="text/javascript">
$(document).ready(function(){
if( $(".header").text().indexOf('Sign out') >= 0){
//alert("Customer is logged in");
$("#div_logged_in").show();
$("#div_not_logged_in").hide();
} else {
//alert("Customer is NOT logged in");
$("#div_logged_in").hide();
$("#div_not_logged_in").show();
}
});
</script>
<div id="div_logged_in">
<p>The customer IS logged in.</p>
</div>
<div id="div_not_logged_in">
<p>The customer IS NOT logged in</p>
</div>
如果您希望在php中執行此操作,並且正在使用會話存儲登錄信息,則可以在首頁頂部執行以下簡單操作:
<?php
session_start();
//check if the user is already logged in.
if (!isset($_SESSION['user'])) {
header('Location: login.php');
}
希望能有所幫助。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.