我试图在这种情况下使用JS Cookie显示登录/注册模式4个页面视图,但它没有触发,我没有在控制台中看到任何错误。非常感谢任何帮助!
这里有条件添加到头部的代码(我将在工作后将其转换为函数),并且我使用https://github.com/js-cookie/js-cookie
<?php if(!is_user_logged_in() && is_singular('listings')) ?>
<script>
jQuery(document).ready(function () {
// create cookie
Cookies.set('visited', '0'); // visited = 0
var VisitedSet = Cookies.get('visited');
if(VisitedSet == 3) {
jQuery("p.counter").html("From this point, you will always see the login/register modal on next visit!");
jQuery(window).load(function() {
jQuery('#overlay').addClass('open');
jQuery('html, body').animate({scrollTop : 0},800);
return false;
});
} else {
VisitedSet++; // increase counter of visits
jQuery("p.counter span").append(VisitedSet);
// set new cookie value to match visits
Cookies.set('visited', VisitedSet, {
expires: 1 // expires after one day
});
console.log('Page Views: ' + VisitedSet);
return false;
}
}); // ready
</script>
<?php } ?>
这是在控制台NaN中显示的内容,尽管我将cookie的初始值设置为0
以下是我试图提取的示例,但如果JS Cookie http://www.picssel.com/playground/jquery/fancyboxOn4pageView_24jan12.html
,则会更新到最新版本答案 0 :(得分:1)
您将cookie始终设置为零...
如果cookie存在值,您需要先检查,只有当cookie不存在时才会设置第一个cookie。
我在这里修改你的代码: https://codepen.io/WebStorm-IL/pen/KZPVdY
jQuery(document).ready(function () {
// Get cookie
var VisitedSet = Cookies.get('visited');
if( ! VisitedSet ){
// create cookie only if already not set
Cookies.set('visited', '0'); // visited = 0
VisitedSet = 0;
}
// increase counter of visits
VisitedSet++;
if(VisitedSet == 3) {
jQuery("p.counter").html("From this point, you will always see the login/register modal on next visit!");
jQuery(window).load(function() {
jQuery('#overlay').addClass('open');
jQuery('html, body').animate({scrollTop : 0},800);
return false;
});
} else {
jQuery("p.counter span").append(VisitedSet);
// set new cookie value to match visits
Cookies.set('visited', VisitedSet, {
expires: 1 // expires after one day
});
console.log('Page Views: ' + VisitedSet);
return false;
}
}); // ready
(function( $ ){
$("#resetCounter").click(function(){
Cookies.set('visited', '0');
location.reload();
});
})( jQuery );