wordpress在短代码中设置cookie

时间:2016-02-14 21:43:02

标签: php wordpress cookies http-headers shortcode

我正在写一个wordpress插件,我有一个短代码。此短代码生成并处理表单。提交表单后,值将存储在cookie中,其中包含:

$result = setCookie('cookieName','cookieValue');

结果然后返回false,表示未设置cookie。这并不令人惊讶,因为在执行短代码时已经发送了头文件。我正在寻找解决这个问题的方法。

我在这里发现了多个类似的问题。大多数答案是:提前设置cookie,但这对我来说不是一个选择。

我唯一能想到的是输出缓冲一切,但我不确定在wordpress中执行此操作的正确方法是什么(挂钩,如何保持与其他插件兼容等)。我也想知道是否有内置的解决方案,因为在我看来,我不会是唯一一个遇到这个问题的人。

2 个答案:

答案 0 :(得分:0)

是的,WP的设计并不允许这样做。如果使用像“初始化”这样的早期行动。是不合适的,我唯一能想到的就是做一个AJAX调用,在回调中使用setcookie就可以了,javascript也可以直接设置cookie。

如果你绝对需要在短代码的回调中计算这个,那么你可能先在$ _SESSION中存储一些东西,或者隐藏的形式或数据属性,然后将它放入cookie中(使用&# 39; init'动作,或将值传递给javascript并使用它来创建cookie)

答案 1 :(得分:0)

我刚刚为另一个问题写了一个答案,我希望这可以最好地定义你想在短代码中使用cookie的方式和位置。

need the right way to setcookie in wordpress