簡體   English   中英

Bigcommerce-如果未登錄,如何將用戶從首頁重定向到登錄頁面

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM