nilsenpaul/complete-cookie-consent

此插件提供了一种完整且简单的方法,让您的网站访客选择您允许设置的cookie。

1.1.1 2022-09-21 14:27 UTC

README

此插件将帮助您遵守欧盟cookie法。根据该法律的规定,所有访问您网站的欧洲访客不仅应被告知,还应同意您网站设置的cookie。此插件将帮助您获得一个或多个cookie组的使用同意。

许可证

此插件需要商业许可证,可以通过Craft插件商店购买。
许可证费用为29美元,后续每年的更新费用为9美元(可选)。

要求

此插件需要Craft CMS 3.0.0或更高版本。

安装

  1. 使用Composer在项目目录中通过 composer require nilsenpaul/complete-cookie-consent 安装
  2. 在Craft控制面板的设置 > 插件下安装插件
  3. 修改插件的设置以满足您的网站需求

您还可以通过Craft控制面板的 插件商店 安装Complete Cookie Consent。

设置

使用插件的设置页面,您可以完全控制cookie同意横幅的外观和功能

  • 从插件设置页面激活和停用横幅
  • 仅对登录管理员显示横幅,用于测试目的
  • 更改横幅和横幅按钮的颜色
  • 更改横幅标题、横幅文本和按钮文本的文本
  • 将插件的CSS包含在内以提供横幅的基本样式,或使用您自己的CSS
  • 为横幅选择一个位置:顶部、右侧、底部、左侧或居中
  • 更改首选项cookie的名称和过期时间
  • 更改cookie类型,使cookie类型为必需或默认选中
  • 通过使用自动下载的GeoIpLite数据库或添加ipApi API密钥,将地理位置添加到您的cookie同意流程中:仅向欧盟访客显示横幅

Banner screenshot

用法

安装插件并激活cookie同意横幅后,横幅将显示在您的网站上。根据您的设置,将使用外部地理位置API来确定是否需要cookie横幅。

Banner screenshot

同意模式(暗示/明确)

Complete Cookie Consent插件允许您在两种同意模式之间进行选择:暗示和明确。在暗示同意的情况下,cookie横幅将仅在每个访客首次页面加载时显示。在明确同意的情况下,访客必须在横幅消失之前做出选择。

我应该选择什么?

不是 法律建议。很难确定适用于您网站的规定,特别是因为每个欧洲国家都有自己的规定(或没有规定或执行)。如果您想确保安全,请选择明确同意。如果您决定选择暗示同意,请确保您在网站上创建了一个表单,让访客更改他们的首选项。

尊重访客的cookie首选项

如果不对用户的偏好采取行动,cookie 允许将不会有多大用处。这就是为什么设置了 ccc JavaScript 对象,其中包含当前访客的偏好。

window.addEventListener('ccc.loaded', function(e) {
    console.log(ccc.consentSubmitted)
    # prints true or false. Only true if visitor submitted their preferences

    console.log(ccc.consentImplied)
    # prints true or false. True if consent mode is set to 'implied' and the visitor did not submit their own preferences

    console.log(ccc.consent.[cookieTypeHandle])
    # prints true or false, depending on your visitor's choice (or the default settings, if consent mode is 'implied')
});

您可以使用这些值来加载(或防止加载)您想要的内容。

cookie 允许变量

插件提供了一个模板变量,用于获取当前访客的允许信息

{% set consentInfo = craft.ccc.consentInfo %}

{{ consentInfo.consentSubmitted }}{# <-- true or false #}
{{ consentInfo.consent }}{# <-- An array with cookieType handles as keys, and consent status as value #}
{{ consentInfo.cookieTypes }}{# <-- An array containing cookie type config settings, indexed by handle #}

使用自己的表单更新cookie允许偏好

从 v1.0.1 版本开始,可以通过此表单更新访客的允许偏好:

<form method="POST">
    <input type="hidden" name="action" value="complete-cookie-consent/consent/submit" />
    {{ csrfInput() }}

    {% for consentType, consentStatus in craft.ccc.consentInfo.consent %}
        <label for="cookieTypes[consentType]">
            <input type="checkbox" name="cookieTypes[]" value="{{ consentType }}"{% if consentStatus == true %} checked{% endif %} /> {{ consentType }}
        </label>
    {% endfor %}

    <input type="submit" value="Submit" />
</form>

谢谢!

  • NYStudio107,感谢您在插件和博客文章中所做的所有工作。有了您的代码作为指导,编写插件变得更容易。

待办事项

  • 更多的 JS 示例,例如如何在未给出允许的情况下防止 Google Tag Manager 加载
  • 简单的统计信息,了解cookie横幅如何影响您的网站