File: /var/www/vhost/disk-apps/magento.bikenow.co/vendor/magento/module-persistent/Helper/Session.php
<?php
/**
* Copyright © Magento, Inc. All rights reserved.
* See COPYING.txt for license details.
*/
namespace Magento\Persistent\Helper;
/**
* Persistent Shopping Cart Data Helper
*
* @api
* @since 100.0.2
*/
class Session extends \Magento\Framework\App\Helper\AbstractHelper
{
/**
* Instance of Session Model
*
* @var \Magento\Persistent\Model\Session
*/
protected $_sessionModel;
/**
* Is "Remember Me" checked
*
* @var null|bool
*/
protected $_isRememberMeChecked;
/**
* Persistent data
*
* @var \Magento\Persistent\Helper\Data
*/
protected $_persistentData;
/**
* Persistent session factory
*
* @var \Magento\Persistent\Model\SessionFactory
*/
protected $_sessionFactory;
/**
* Checkout session
*
* @var \Magento\Checkout\Model\Session
*/
protected $_checkoutSession;
/**
* @param \Magento\Framework\App\Helper\Context $context
* @param Data $persistentData
* @param \Magento\Checkout\Model\Session $checkoutSession
* @param \Magento\Persistent\Model\SessionFactory $sessionFactory
*/
public function __construct(
\Magento\Framework\App\Helper\Context $context,
\Magento\Persistent\Helper\Data $persistentData,
\Magento\Checkout\Model\Session $checkoutSession,
\Magento\Persistent\Model\SessionFactory $sessionFactory
) {
$this->_persistentData = $persistentData;
$this->_checkoutSession = $checkoutSession;
$this->_sessionFactory = $sessionFactory;
parent::__construct(
$context
);
}
/**
* Get Session model
*
* @return \Magento\Persistent\Model\Session
*/
public function getSession()
{
if ($this->_sessionModel === null) {
$this->_sessionModel = $this->_sessionFactory->create();
$this->_sessionModel->loadByCookieKey();
}
return $this->_sessionModel;
}
/**
* Force setting session model
*
* @param \Magento\Persistent\Model\Session $sessionModel
* @return \Magento\Persistent\Model\Session
* @codeCoverageIgnore
*/
public function setSession($sessionModel)
{
$this->_sessionModel = $sessionModel;
return $this->_sessionModel;
}
/**
* Check whether persistent mode is running
*
* @return bool
*/
public function isPersistent()
{
return $this->getSession()->getId() && $this->_persistentData->isEnabled();
}
/**
* Check if "Remember Me" checked
*
* @return bool
*/
public function isRememberMeChecked()
{
if ($this->_isRememberMeChecked === null) {
//Try to get from checkout session
$isRememberMeChecked = $this->_checkoutSession->getRememberMeChecked();
if ($isRememberMeChecked !== null) {
$this->_isRememberMeChecked = $isRememberMeChecked;
$this->_checkoutSession->unsRememberMeChecked();
return $isRememberMeChecked;
}
return $this->_persistentData->isEnabled()
&& $this->_persistentData->isRememberMeEnabled()
&& $this->_persistentData->isRememberMeCheckedDefault();
}
return (bool)$this->_isRememberMeChecked;
}
/**
* Set "Remember Me" checked or not
*
* @param bool $checked
* @return void
* @codeCoverageIgnore
*/
public function setRememberMeChecked($checked = true)
{
$this->_isRememberMeChecked = $checked;
}
}