在特定URL访问时设置Cookie

时间:2018-11-29 作者:Alex

我正在尝试设置,当访问特定页面/url时,将设置并保存cookie。

到目前为止,我已经尝试过:

add_action(\'init\', \'set_cookie\', 1);

function set_cookie(){

  if ( $currentURL == \'https://25dni.si/delovanje-uma/\' ) :

    if ( ! isset( $_COOKIE[\'opt_in\'] ) ) :
        setcookie( \'opt_in\', has_opt_in, time()+31556926);

    endif;

  endif;

}
现在,当我访问特定URL时,会检测到cookie,但当我转到另一个页面时,cookie就会消失。

如何保存cookie?

我对这个很陌生,请帮我理解。

非常感谢。

2 个回复
SO网友:Alex

我用过这个,它很有效:

 add_action(\'init\', \'optin_cookie\', 1);

 function optin_cookie(){

   $currentURL = "https://" . $_SERVER[\'HTTP_HOST\'] . $_SERVER[\'REQUEST_URI\'];

   if ( $currentURL == \'https://25dni.si/delovanje-uma/\' ) :

    setcookie( \'opt_in\', has_opt_in, time()+31556926, \'/\');

   elseif ( $currentURL != \'https://25dni.si/\' ) :

     if ( ! isset( $_COOKIE[\'opt_in\'] ) ) :

     endif;

    endif;

 }
我相信有一种更优雅的方法可以做到这一点,但这对我来说很有用。。。

SO网友:jdp

我很惊讶它居然能起作用$currentURL 未在函数中定义,也未声明为全局。

看看documentation 对于setcookie(). 您没有声明cookie的路径,请尝试以下操作:

setcookie(\'opt_in\',\'opt_in\', time()+31556926, \'/\');

这将为整个域设置cookie,如果您想这样做的话。

结束

相关推荐

无法在模板函数.php中使用IS_HOME

我试图在标题中加载一个滑块,但只在主页上加载。如果有帮助的话,我正在使用Ultralight模板。我正在尝试(在template functions.php中)执行以下操作:<?php if ( is_page( \'home\' ) ) : ?> dynamic_sidebar( \'Homepage Widget\' ); <?php endif; ?> 但这行不通。现在,通过快速的google,我似乎需要将请