123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144 |
- <?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;
- }
- }
|