首页 > 解决方案 > WP缓存插件阻止cookie被设置

问题描述

我制作了一个简单的 WordPress 插件,它在我自己的服务器上运行良好,但在朋友的实时网站上却不行。

这是一个非常基本的推荐插件,我使用cookie保存推荐人ID,然后user_register在有人注册后使用挂钩将其保存到数据库中。

这是保存Referrer ID的部分:

function set_referrer_cookie() {
    setcookie("referrer_id", $_GET['ref'], time()+3600, "/");
}

add_action('init', 'set_referrer_cookie');

cookie没有设置很多次,一开始我很疑惑,但是经过大量测试,我相信这是由于缓存引起的(他有很多插件,例如Br​​eeze缓存等)

如何确保始终设置 cookie?

有没有办法解决?

编辑:

在浏览器中运行每个 URL 后,插件会在其/breeze/cache/文件夹中保存一个新的 .php 文件,

我认为这是 PHP 文件的输出,因为其中的echo值以纯文本形式显示,而且都是 HTML,

因此,Breeze 插件似乎将 PHP 的输出缓存在一个文件中,并将其作为静态 HTML 再次提供,在管理面板中没有排除 set_cookie 的选项......有什么办法可以解决这个问题吗?

标签: phpwordpress

解决方案


推荐阅读