_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; } }