2016-06-07 64 views
2

我想在我們的網站上獲得一個「好看」的EU cookie cookie橫幅。這可能嗎?要隱藏基於cookie的div(創建EU Cookie Cookie)

對於那些不知道。在英國和歐洲使用cookies的網站必須告訴用戶。我查看了幾個WP插件,但它們都對設計非常干擾。

我正在使用我自己的WP Boostrap主題。導航欄上方有一個帶子行div的容器div。

此刻,當用戶使用數據切換數據目標單擊按鈕時,我隱藏了子行div。

這在這裏的代碼顯示(因爲它位於導航上面出現在每一頁上的驗證碼。

<div id="container-topline" class="container-fluid bg-moderateblue" style="min-height:2px;"> 
    <div id="row-cookie" class="row" style="padding-top:10px; padding-bottom:10px;"> 
     <div class="col-md-1 col-xs-hidden"></div> 
     <div class="col-md-10 col-sm-12"> 
      <div class="col-sm-10 col-xs-12"> 
       <ul class="fa-ul" style="color:#FFF; font-size:small;"> 
       <li> 
       <i class="fa fa-exclamation-triangle fa-li fa-2x" aria-hidden="true"></i> 
       <strong>Privacy &amp; Cookies:</strong> This website uses cookies to improve your experience and to provide essential functionality. By continuing to use this website your consent is implied. To view our privacy policy <a href="#" style="font-weight:bold; color:#FFF;"> click here</a>. 
       </li> 
       </ul> 
      </div> 
      <div class="col-sm-2 col-xs-12" style="text-align:center;">   
       <button class="btn btn-default col-md-pull-right" data-toggle="collapse" data-target="#row-cookie"> 
       <i class="fa fa-times" aria-hidden="true"></i> Close Message 
       </button> 
      </div> 
     </div> 
     <div class="col-md-1 col-xs-hidden"></div> 
    </div> 
</div> 

到目前爲止一切順利。然而,這意味着每個頁面上,用戶必須關閉的消息。有點煩人,它需要重點從網站

我想要的是一種方式(這是我卡住的地方)隱藏#行餅乾關閉後24小時內。

這是可能的,你有任何tutotrial建議走過我?

我以爲可能是一個Cookie,但我看了他們在Stack Overflow上使用的一些例子,他們相當坦率地阻止了我!

所有幫助極大appreaciated :)!

+0

你使用任何框架或普通的舊javascript嗎? – Coco

回答

2

當用戶關閉橫幅時,通過Ajax設置cookie。使用jQuery,這是因爲這樣做非常簡單:

jQuery(#row-cookies .fa-times).click(
    jQuery.get("http://link-to-php-file.php"); 
}); 

對於PHP文件,只需創建一個在你的主題目錄(請務必使用一個child theme,如果你還沒有這樣做!)

然後在PHP文件中做:

<?php 
// Set a cookie to expire in 24 hours 
setcookie("closed-cookies", "true", time()+60*60*24, "/"); 

現在,在您的模板文件中,您只需查看是否在打印之前設置了cookie。

<?php 
if(isset($_COOKIE['closed-cookies'])) : 
?> 

// Cookie banner 

<?php 
endif; 
?> 
+0

Hi @ lukas-gjetting謝謝你的回答非常好!現在更清晰了。 –

+0

關於jQuery可以讀取(#row-cookies#row-cookies-button)如果我要給該按鈕一個id =「row-cookies-button」,我猜測此刻它設置爲有人點擊在字體awsome X只? –

+0

@NathanJones當然可以。事實上,如果你這樣做,你甚至不需要前面的「#row-cookies」。 –

0
!(document.cookie.split(";").forEach(function(elem){ 
    var key = elem.split("=")[0]; 
    var value = elem.split("=")[1]; 
    if(key == "privacyRead" && value == "true"){ 
    // code to hide the div 
    document.getElementById("container-topline").style.display = "none"; 
    } 
})) 

現在只需添加一個onclick處理程序的隱私接受按鈕至極將處理Cookie集東西document.cookie = "privacyRead=true;" + "expires=" + new Date(new Date().getTime() + 60*1000*60*24) + hideDiv和你做

  • 我假設你沒有使用任何框架。

在頁面加載時,腳本的第一部分將檢查是否存在cookie,如果true將隱藏div。 在cookie集合部分,我們將添加1天的截止日期,因此cookie不會在明天出現。