In order to handle cookies in Magento refer to /js/mage/cookies.js. The functions for getting, settings and clearing cookies are:
- Mage.Cookies.set
- Mage.Cookies.get
- Mage.Cookies.clear
Below you find the corresponding JavaScript functions from cookies.js:
Mage.Cookies.set = function(name, value) {
var argv = arguments;
var argc = arguments.length;
var expires = (argc > 2) ? argv[2] : Mage.Cookies.expires;
var path = (argc > 3) ? argv[3] : Mage.Cookies.path;
var domain = (argc > 4) ? argv[4] : Mage.Cookies.domain;
var secure = (argc > 5) ? argv[5] : Mage.Cookies.secure;
document.cookie = name + "=" + escape (value) +
((expires == null) ? "" : ("; expires=" + expires.toGMTString())) +
((path == null) ? "" : ("; path=" + path)) +
((domain == null) ? "" : ("; domain=" + domain)) +
((secure == true) ? "; secure" : "");
};
Mage.Cookies.get = function(name){
var arg = name + "=";
var alen = arg.length;
var clen = document.cookie.length;
var i = 0;
var j = 0;
while(i < clen){
j = i + alen;
if (document.cookie.substring(i, j) == arg)
return Mage.Cookies.getCookieVal(j);
i = document.cookie.indexOf(" ", i) + 1;
if(i == 0)
break;
}
return null;
};
Mage.Cookies.clear = function(name) {
if(Mage.Cookies.get(name)){
document.cookie = name + "=" +
"; expires=Thu, 01-Jan-70 00:00:01 GMT";
}
};
Generic cookie clear function
In case you are searching for a simple, generic function to clear (Magento) session cookies you might want to use the following snippet ($vhost is the current VHost determined by PHP’s globals, e.g. www.yoursite.com):
function clearCookie(name, domain, path) {
var domain = domain || document.domain;
var path = path || "/";
console.debug(name + "=; expires=" + +new Date + "; domain=" + domain + "; path=" + path);
document.cookie = name + "=;expires=Thu, 01 Jan 1970 00:00:00 GMT;domain=" + domain + ";path=" + path;
}
try {
console.debug('Removing session cookie...');
clearCookie('frontend', '<!--?php echo $vhost; ?-->', '/');
console.debug('Removed cookie');
} catch (Error) {
console.error('Failed to remove cookie');
}
