nilsenpaul / complete-cookie-consent
此插件提供了一种完整且简单的方法,让您的网站访客选择您允许设置的cookie。
Requires
- php: ^8.0
- craftcms/cms: ^4.0
- geoip2/geoip2: ~2.0
This package is auto-updated.
Last update: 2024-09-30 01:20:46 UTC
README
此插件将帮助您遵守欧盟cookie法。根据该法律的规定,所有访问您网站的欧洲访客不仅应被告知,还应同意您网站设置的cookie。此插件将帮助您获得一个或多个cookie组的使用同意。
许可证
此插件需要商业许可证,可以通过Craft插件商店购买。
许可证费用为29美元,后续每年的更新费用为9美元(可选)。
要求
此插件需要Craft CMS 3.0.0或更高版本。
安装
- 使用Composer在项目目录中通过
composer require nilsenpaul/complete-cookie-consent安装 - 在Craft控制面板的设置 > 插件下安装插件
- 修改插件的设置以满足您的网站需求
您还可以通过Craft控制面板的 插件商店 安装Complete Cookie Consent。
设置
使用插件的设置页面,您可以完全控制cookie同意横幅的外观和功能
- 从插件设置页面激活和停用横幅
- 仅对登录管理员显示横幅,用于测试目的
- 更改横幅和横幅按钮的颜色
- 更改横幅标题、横幅文本和按钮文本的文本
- 将插件的CSS包含在内以提供横幅的基本样式,或使用您自己的CSS
- 为横幅选择一个位置:顶部、右侧、底部、左侧或居中
- 更改首选项cookie的名称和过期时间
- 更改cookie类型,使cookie类型为必需或默认选中
- 通过使用自动下载的GeoIpLite数据库或添加ipApi API密钥,将地理位置添加到您的cookie同意流程中:仅向欧盟访客显示横幅
用法
安装插件并激活cookie同意横幅后,横幅将显示在您的网站上。根据您的设置,将使用外部地理位置API来确定是否需要cookie横幅。
同意模式(暗示/明确)
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横幅如何影响您的网站

