[...]
Wenn ich nachträglich (also nachdem ich einmal eingewilligt habe) die Cookie Einstellungen auf "Ablehnen" stelle, werden in der Chrome Analyse trotzdem weiter die _ga / _gat / _gid Cookies angezeigt. Ist das so normal oder sollten die dann nicht gelöscht werden ? Oder verschwinden die Cookies erst nach Ablauf des "Expire" Datums von selbst ?
Also ich bin der Meinung, dass in diesem Fall diese Cookies gelöscht werden sollten, denn es geht ja eigentlich darum das der Shopbesucher nicht essenzielle Cookies ablehnt und nicht nur darum, das der diese Cookies setzende und auswertende Code, nicht ausgeführt wird.
Um Obiges, also das Löschen nicht essenzieller Cookies zu bewerkstelligen, hätte ich folgenden Vorschlag.
In der Datei /templates/tpl_modified/javascript/general_bottom.js.php den folgenden Code am Ende
<script>
var consent_type = "<?php echo ((TRACKING_GOOGLEANALYTICS_ACTIVE == 'true' || TRACKING_PIWIK_ACTIVE == 'true' || TRACKING_FACEBOOK_ACTIVE == 'true' || (defined('TRACKING_CUSTOM_ACTIVE') && TRACKING_CUSTOM_ACTIVE == 'true')) ? 'opt-in' : 'info'); ?>";
window.cookieconsent.initialise({
type: consent_type,
revokable: ((consent_type == 'info') ? false : true),
animateRevokable: ((consent_type == 'info') ? true : false),
content: {
"message": ((consent_type == 'info') ? "<?php echo TEXT_COOKIECONSENT_MESSAGE_INFO; ?>" : "<?php echo TEXT_COOKIECONSENT_MESSAGE_TRACKING; ?>"),
"dismiss": "<?php echo TEXT_COOKIECONSENT_DISSMISS; ?>",
"link": "<?php echo TEXT_COOKIECONSENT_LINK; ?>",
"href": "<?php echo ((isset($privacy_link)) ? $privacy_link : xtc_href_link(FILENAME_POPUP_CONTENT, 'coID=2', $request_type)); ?>",
"policy": "<?php echo TEXT_COOKIECONSENT_POLICY; ?>",
"allow": "<?php echo TEXT_COOKIECONSENT_ALLOW; ?>",
"deny": "<?php echo TEXT_COOKIECONSENT_DENY; ?>"
},
cookie: {
"name": "MODtrack",
"path": "<?php echo DIR_WS_CATALOG; ?>",
"domain": "<?php echo (xtc_not_null($current_domain) ? '.'.$current_domain : ''); ?>",
"secure": <?php echo ((HTTP_SERVER == HTTPS_SERVER && $request_type == 'SSL') ? "true" : "false"); ?>
},
onInitialise: function(status) {
if(status == cookieconsent.status.allow) TrackingScripts();
},
onStatusChange: function(status, chosenBefore) {
if (this.hasConsented()) TrackingScripts();
}
});
function TrackingScripts() {
if ($.isFunction(window.TrackingGoogle)) {
TrackingGoogle();
}
if ($.isFunction(window.TrackingPiwik)) {
TrackingPiwik();
}
if ($.isFunction(window.TrackingFacebook)) {
TrackingFacebook();
}
}
</script>
mit diesem Code ersetzen, der die zusätzliche Funktion deleteCookies() enthält, welche dafür sorgt, dass bei nachträglicher Ablenung nicht essenzieller Cookies diese nicht essenziellen Cookies gelöscht werden. Ausserdem werden bei Ablehnung nicht essenzieller Cookies diese nach dem laden der Seite gelöscht, egal von welcher Quelle sie gesetzt werden.
<script>
// document.cookie = "extra_essential_cookie=test; expires=Thu, 01 Jan 2020 00:00:00 GMT; path=/";
window.addEventListener("load", function(){
var consent_type = "<?php echo ((TRACKING_GOOGLEANALYTICS_ACTIVE == 'true' || TRACKING_PIWIK_ACTIVE == 'true' || TRACKING_FACEBOOK_ACTIVE == 'true' || (defined('TRACKING_CUSTOM_ACTIVE') && TRACKING_CUSTOM_ACTIVE == 'true')) ? 'opt-in' : 'info'); ?>";
window.cookieconsent.initialise({
type: consent_type,
revokable: ((consent_type == 'info') ? false : true),
animateRevokable: ((consent_type == 'info') ? true : false),
content: {
"message": ((consent_type == 'info') ? "<?php echo TEXT_COOKIECONSENT_MESSAGE_INFO; ?>" : "<?php echo TEXT_COOKIECONSENT_MESSAGE_TRACKING; ?>"),
"dismiss": "<?php echo TEXT_COOKIECONSENT_DISSMISS; ?>",
"link": "<?php echo TEXT_COOKIECONSENT_LINK; ?>",
"href": "<?php echo ((isset($privacy_link)) ? $privacy_link : xtc_href_link(FILENAME_POPUP_CONTENT, 'coID=2', $request_type)); ?>",
"policy": "<?php echo TEXT_COOKIECONSENT_POLICY; ?>",
"allow": "<?php echo TEXT_COOKIECONSENT_ALLOW; ?>",
"deny": "<?php echo TEXT_COOKIECONSENT_DENY; ?>"
},
cookie: {
"name": "MODtrack",
"path": "<?php echo DIR_WS_CATALOG; ?>",
"domain": "<?php echo (xtc_not_null($current_domain) ? '.'.$current_domain : ''); ?>",
"secure": <?php echo ((HTTP_SERVER == HTTPS_SERVER && $request_type == 'SSL') ? "true" : "false"); ?>,
"expiryDays": 120
},
onInitialise: function(status) {
if(this.hasConsented()) {
TrackingScripts();
}else{
//If cookies not allowed delete them
deleteCookies();
}
},
onStatusChange: function(status, chosenBefore) {
if (status == 'allow') {
TrackingScripts();
}else{
//If cookies not allowed delete them
deleteCookies();
}
}
});
function TrackingScripts() {
if ($.isFunction(window.TrackingGoogle)) {
TrackingGoogle();
}
if ($.isFunction(window.TrackingPiwik)) {
TrackingPiwik();
}
if ($.isFunction(window.TrackingFacebook)) {
TrackingFacebook();
}
}
/*
* deleteCookies
* delete all cookies except those listed in the array essential
*/
function deleteCookies() {
//List of essential cookies - set as an empty array to delete everything - i.e. var essential = [];
var essential = ["MODsid", "extra_essential_cookie"];
//create array of cookies set
var cookies = document.cookie.split(";");
//loop through the cookies
for (var i = 0; i < cookies.length; i++) {
var cookie = cookies[i];
//Get the cookie name
var eqPos = cookie.indexOf("=");
var name = (eqPos > -1 ? cookie.substr(0, eqPos) : cookie).trim();
//Delete all cookies except those listed in essential
if (essential === undefined || essential.length == 0 || essential.indexOf(name) == -1){
//Note assuming path is always = '/'
document.cookie = name + "=; expires=Thu, 01 Jan 1970 00:00:00 GMT; path=/";
document.cookie = name + "=; expires=Thu, 01 Jan 1970 00:00:00 GMT; path=<?php echo DIR_WS_CATALOG; ?>";
}
}
}
});
</script>
Gruss
Hanspeter