Magento 2.2 Customer Session – Fix Session Not Working with Cache Enabled

customer-sessionmagento2magento2.2session

I tried this code but when cache is disable. it works, but when I enable cache it does not work.

$ObjectManager = \Magento\Framework\App\ObjectManager::getInstance();
$session =  $ObjectManager->get('Magento\Customer\Model\Session');
if($session->isLoggedIn()) 
{
}

Best Answer

Use below code:

$ObjectManager= \Magento\Framework\App\ObjectManager::getInstance();
$context = $ObjectManager->get('Magento\Framework\App\Http\Context');
$isLoggedIn = $context->getValue(\Magento\Customer\Model\Context::CONTEXT_AUTH);
return $isLoggedIn;
Related Topic