javascript - 当用户第二次打开页面时创建cookie WordPress

标签 javascript php wordpress cookies

这是我的代码:

function set_newuser_cookie() {
    if ( !is_admin() && !isset($_COOKIE['domain_newvisitor'])) {
        setcookie('domain_newvisitor', 1, time()+3600*24*100, '/', 'domain.com', false);
    } 
} 
add_action( 'init', 'set_newuser_cookie'); 

使用此代码,cookie 工作得很好,但是当我通过此 javascript 代码检查 cookie 是否存在时(需要检查我们是否有 cookie 或不在 javascript 代码中的其他地方使用它):

var isCookie = document.cookie.match(/^(.*;)?domain_newvisitor=[^;]+(.*)?$/);
if(isCookie){
     console.log('yes');
}else{
     console.log('no');
} 

它总是在控制台日志中显示"is",即使是在删除 cookie 并第一次访问网站时也是如此。如何更改 php 代码以仅在用户第二次打开页面时创建 cookie。

最佳答案

您将 cookie 设置为:

function set_newuser_cookie() {
    if ( !is_admin() && !isset($_COOKIE['domain_newvisitor'])) {
        setcookie('domain_newvisitor', 1, time()+3600*24*100, '/', 'domain.com', false);
    } 
} 
add_action( 'init', 'set_newuser_cookie');

说明:如果 cookie 已设置 => !isset($_COOKIE['domain_newvisitor']) 并且用户不是管理员,则您正在设置 cookie。

<小时/>

在此之后,将检查 cookie 是否退出:

var isCookie = document.cookie.match(/^(.*;)?domain_newvisitor=[^;]+(.*)?$/);
if(isCookie){
     console.log('yes');
}else{
     console.log('no');
}

那么cookie每次都会退出。当您创建它(如果是第一次)并检查它是否存在时。

<小时/>

您应该检查 cookie 是否存在,然后将其存储为变量并使用它,而不是然后创建它:

 function set_newuser_cookie() {
        if ( !is_admin() && !isset($_COOKIE['domain_newvisitor'])) {
            setcookie('domain_newvisitor', 1, time()+3600*24*100, '/', 'domain.com', false);
        }else
        if(!is_admin() && isset($_COOKIE['domain_newvisitor'])){
             $CookieValue = $_COOKIE['domain_newvisitor']
             //echo or return this $CookieValue 
        } 
    }


add_action( 'init', 'set_newuser_cookie');

现在您可以通过将 $CookieValue 从服务器传递到客户端来在 js 中使用它。

关于javascript - 当用户第二次打开页面时创建cookie WordPress,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34129752/

相关文章:

php - 如何以安全的方式提供密码重置功能?

WordPress - 使用自定义帖子类型进行管理搜索

php - 在何处以及如何在 roots 入门主题中添加/编辑 css

php - WordPress 自定义注册不适用于/注册

Javascript static/singelton - this vs _this vs 对象名称

javascript - css 在固定宽度内 float 2 个 sibling ,一个 sibling 包含插入 sibling 的 ellments

javascript - 如何将表单值设置为输入名称但发送 ID?

javascript - MongoDB 安全问题

javascript - 在哪里可以找到 JavaScript DOM 类层次结构的完整描述?

php - 如何防止两个用户同时编辑相同的内容