Skip to content

Instantly share code, notes, and snippets.

@mct-dev
Last active September 10, 2018 22:30
Show Gist options
  • Save mct-dev/5c072b5197a5c5e402c5ee0c426bcbcb to your computer and use it in GitHub Desktop.
Save mct-dev/5c072b5197a5c5e402c5ee0c426bcbcb to your computer and use it in GitHub Desktop.
'use strict';
function setCookie(cookieName, cookieValue, expiresDays, domain) {
var path = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : '/';
var isSecure = arguments[5];
var isSessionCookie = arguments[6];
var cookieDomain = window.lp.globals.cookieDomain;
var expires = '';
if (expiresDays) {
var now = new Date();
now.setTime(now.getTime() + expiresDays * 86400000);
expires = '; expires=' + now.toUTCString();
}
if (isSessionCookie) {
expires = '';
}
document.cookie = encodeURIComponent(cookieName) + '=' + encodeURIComponent(cookieValue) + ';' + (expires + '; domain=' + (domain || cookieDomain) + '; path=' + path + (isSecure ? '; secure' : ''));
return getCookie(cookieName);
}
function deleteCookie(cookieName, domain) {
var cookieDomain = domain || '.lampsplus.com' || window.lp.globals.cookieDomain;
setCookie(cookieName, '', -10, cookieDomain);
}
function getCookie(cookieName) {
var result = new RegExp('(?:^|; )' + encodeURIComponent(cookieName) + '=([^;]*)').exec(document.cookie);
return result ? result[1] : null;
}
/**
* Get the hashed email from a cookie value (removes extra params)
* @param {String} cookieValue cookie value returned by getCookie()
*/
function getEmailFromCookie(cookieValue) {
// ex cookie:
// "em=20824kjsldhfjk987234?url=/account/create/1234?param=2o3k4j/23k3l"
return cookieValue
.split('?')
.shift()
.split('=')
.pop();
}
/**
* Send tracking data via utag.view()
* @param {String} email hashed email value to send via tracking
*/
function sendTrackingInfo(email) {
// LiveRam tag template will only respond to utag.view (not utag.link)
if (window.utag && window.utag.view) {
window.utag.view({
customer_email: email
});
}
}
var cookieName = 'mdem';
var cookie = getCookie(cookieName);
if (cookie) {
var email = getEmailFromCookie(cookie);
sendTrackingInfo(email);
deleteCookie(cookieName);
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment