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.