Use following code to set and get custom cookie in Magento 2
<?php
namespace Vish\Demo\Model;
use \Magento\Framework\Stdlib\CookieManagerInterface;
use \Magento\Framework\Stdlib\Cookie\CookieMetadataFactory;
class ManageCookie
{
/** @var CookieManagerInterface CookieManagerInterface */
protected $cookieManager;
/** @var CookieMetadataFactory CookieMetadataFactory */
protected $cookieMetadataFactory;
/**
* @param CookieManagerInterface $cookieManager,
* @param CookieMetadataFactory $cookieMetadataFactory
**/
public function __construct(
CookieManagerInterface $cookieManager,
CookieMetadataFactory $cookieMetadataFactory
) {
$this->cookieManager = $cookieManager;
$this->cookieMetadataFactory = $cookieMetadataFactory;
}
/**
* Set Custom Cookie
**/
public function setCustomCookie($cookieName, $cookieValue, $duration = 86400)
{
$metadata = $this->cookieMetadataFactory
->createPublicCookieMetadata()
->setDuration();
// NOTE: Duration in second
return $this->cookieManager->setPublicCookie(
$cookieName,
$cookieValue,
$metadata
);
}
/**
* Get Custom Cookie
**/
public function getCustomCookie($cookieName)
{
return $this->cookieManager->getCookie($cookieName);
}
}
NOTE: Custom cookies code may not work properly on the Magento Commerce Cloud website due to the Fastly cache.

