|
function clearCookie1112686(name, domain, path) { |
|
try { |
|
function Get_Cookie(check_name) { |
|
// first we'll split this cookie up into name/value pairs |
|
// note: document.cookie only returns name=value, not the other components |
|
var a_all_cookies = document.cookie.split(";"), |
|
a_temp_cookie = "", |
|
cookie_name = "", |
|
cookie_value = "", |
|
b_cookie_found = false; |
|
|
|
for (i = 0; i < a_all_cookies.length; i++) { |
|
// now we'll split apart each name=value pair |
|
a_temp_cookie = a_all_cookies[i].split("="); |
|
|
|
// and trim left/right whitespace while we're at it |
|
cookie_name = a_temp_cookie[0].replace(/^\s+|\s+$/g, ""); |
|
|
|
// if the extracted name matches passed check_name |
|
if (cookie_name == check_name) { |
|
b_cookie_found = true; |
|
// we need to handle case where cookie has no value but exists (no = sign, that is): |
|
if (a_temp_cookie.length > 1) { |
|
cookie_value = unescape(a_temp_cookie[1].replace(/^\s+|\s+$/g, "")); |
|
} |
|
// note that in cases where cookie is initialized but no value, null is returned |
|
return cookie_value; |
|
break; |
|
} |
|
a_temp_cookie = null; |
|
cookie_name = ""; |
|
} |
|
if (!b_cookie_found) { |
|
return null; |
|
} |
|
} |
|
if (Get_Cookie(name)) { |
|
var domain = domain || document.domain; |
|
var path = path || "/"; |
|
document.cookie = |
|
name + |
|
"=; expires=" + |
|
new Date() + // If Date() doesn't work hardcode this "Thu, 01 Jan 1970 00:00:00 UTC" |
|
"; domain=" + |
|
domain + |
|
"; path=" + |
|
path; |
|
} |
|
} catch (err) {} |
|
} |
|
|
|
(function () { |
|
/* DEBUG |
|
console.log(document.cookie); |
|
*/ |
|
|
|
function cleanGaCookies() { |
|
clearCookie1112686("_ga", ".YOURDOMAIN.com", "/"); |
|
clearCookie1112686("_gid", ".YOURDOMAIN.com", "/"); |
|
console.log(`Cleared GA cookies. document.cookie = ${document.cookie}`); |
|
} |
|
|
|
/* Check for Enfold cookie. */ |
|
const cookieStatus = document.cookie |
|
.split("; ") |
|
.find((row) => row.startsWith("aviaCookieConsent=")); |
|
|
|
console.log(`cookieStatus = ${cookieStatus}`); |
|
|
|
if (!cookieStatus) { |
|
/* If no consent cookie, tell MI not to track. */ |
|
__gtagTrackerOptout(); |
|
cleanGaCookies(); |
|
console.log("MonsterInsights opt-out: no cookie"); |
|
return; |
|
} |
|
|
|
const consent = cookieStatus.split("=")[1]; |
|
|
|
console.log(`\nCookie consent: ${consent}\n\n`); |
|
|
|
// MI doesn't have a way to opt back in (revoke). |
|
// So, we'll manually say it's cool to track again. |
|
if (consent) { |
|
const disableStr = "ga-disable-UA-1234567-1"; // CHANGE THIS TRACKING ID |
|
document.cookie = |
|
disableStr + "=false; expires=Thu, 31 Dec 2099 23:59:59 UTC; path=/"; |
|
console.log("MonsterInsights opt-in: consent given"); |
|
return; |
|
} |
|
|
|
/* If consent not given, tell MI not to track. */ |
|
__gtagTrackerOptout(); |
|
cleanGaCookies(); |
|
console.log("MonsterInsights opt-out: no consent"); |
|
})(); |
|
|
|
/** |
|
* Follow-on Recommendations |
|
* |
|
* 1. Handle aviaPrivacyCustomCookie_gidDisabled |
|
* |
|
* 2. Handle aviaPrivacyCustomCookie_gaDisabled |
|
* |
|
*/ |