gmazzap/gm-cookie-policy

一个简单的插件,用于展示符合欧盟cookie法的消息。

安装: 845

依赖项: 0

建议者: 0

安全: 0

星标: 12

关注者: 3

分支: 0

开放问题: 0

类型:wordpress-plugin

0.2.2 2016-05-17 16:09 UTC

This package is auto-updated.

Last update: 2024-08-26 14:39:22 UTC


README

一个简单的插件,用于展示符合欧盟cookie法的消息。

支持Composer,但不是必需的。需要PHP 5.4及以上。

主要面向开发者,但基本需求也可以由非开发者使用:基本配置可通过UI进行,但高级自定义只能通过钩子实现。

为什么还要另一个"cookie政策"插件?

已经有几个插件旨在做同样的事情,但我需要一个插件

  • 支持Composer原生
  • 即使在禁用javascript的情况下也能工作
  • 提供PHP API,以便在当前用户接受政策时通知
  • 提供javascript API,以便在当前用户接受政策时通知,并且能够通知其他脚本在用户接受政策时
  • 不做得太多
  • 没有数十个选项
  • 不是过于"促销"的

而且我找不到一个能满足所有上述要求的插件。所以我写了它。

使用方法

激活后,将在"工具"主菜单下添加一个子菜单。

可以从那里访问设置页面,在该页面中可以设置cookie政策通知消息和其他一些基本选项。

许多其他自定义可以通过钩子实现。

PHP API

当插件激活时,您可以通过一个过滤器来通知用户是否接受政策

$accepted = apply_filters('cookie-policy-accepted', false);

这样,所有使用"跟踪cookie"的任何内容都可以在$accepted为false时禁用/不加载,完全实施欧盟法律。

由于这是一个过滤器,它不会锁定到插件。即使禁用插件,依赖于上述过滤器的任何代码在插件不存在时也不会崩溃。

然而,PHP可以在用户点击接受政策的链接时重新加载页面组件(例如广告),这就是为什么还有一个javascript API的原因。

javascript API

简而言之,变量window.cookiePolicy.accepted是一个布尔值,当用户接受政策时被设置为true

有两个自定义事件,脚本可以监听以检查该变量并相应地执行。

第一个事件是cookie-policy-loaded,它发生在文档完全加载后。

jQuery(document).on('cookie-policy-loaded', function() {
    var cookiePolicy = window.cookiePolicy || { accepted: false };
    if (cookiePolicy.accepted) {
      // page just loaded, this is a returning user that already accepted policy before
    } else {
      // this user has not accepted policy yet, they might be just landed to website
    }
});

另一个事件是cookie-policy-accepted,它在用户接受政策后被触发。

jQuery(document).on('cookie-policy-accepted', function() {
    var cookiePolicy = window.cookiePolicy || { accepted: false };
    if (cookiePolicy.accepted) {
      // user just accepted policy, excellent, release the hounds :)
    } else {
      // this should never happen, if it does, something went wrong with javascript
    }
});

与PHP API一样,javascript API也不会锁定到插件。可以禁用插件而不会破坏任何东西,也可以用可能触发相同事件并设置相同变量的其他脚本替换插件,以实现100%的后向兼容性。

翻译

该插件附带一些翻译

  • 意大利语
  • 罗马尼亚语(由@rmdiaconu提供)

欢迎更多翻译的PR。

许可证

MIT。