如何检查客户是否登录 Magento 2
众所周知,在很多情况下,我们需要检查客户当前是否在您的网站上登录。例如,有一些针对已登录客户的特殊促销活动。今天,这篇博客将向您展示如何在 Magento 2 中检查客户的登录状态。
在 Magento 中,会话在增强用户体验方面发挥着重要作用,它们在收集有关用户访问的重要统计数据方面也很有用。会话的特点是在服务器端存储与用户交互相关的信息。我为您推荐此解决方案:
使用Magento\Customer\Model\Session::isLoggedIn()
方法。
isloggedIn()
方法返回一个布尔值,指示登录客户的状态。访客客户或未登录的客户浏览该网站将返回 false,反之亦然。
要在控制器、助手或观察者中使用此类......您可以按照以下步骤操作:
首先,您需要在构造函数方法中注入以下类:/Magento/Customer/Model/Session
.
protected $_session; public function __construct( ... \Magento\Customer\Model\Session $session, ... ) { ... $this->_session = $session; ... }
然后在您的班级中,在任何函数中使用以下代码来检查客户是否已登录:
if ($this->_session->isLoggedIn()) { // Customer is logged in } else { // Customer is not logged in }
使用控制器类的代码示例:
将 [Vendor] 和 [Module] 替换为您的供应商和模块名称
<?php
namespace [Vendor]\[Module]\Controller\Index;
use Magento\Framework\App\Action\Context;
use Magento\Framework\App\Action\Action;
use Magento\Customer\Model\Session;
class ClassName extends Action
{
protected $_session;
public function __construct(Context $context, Session $session)
{
parent::__construct($context);
$this->_session = $session;
}
public function execute()
{
// by using Session model
if($this->_session->isLoggedIn()) {
//customer has logged in
// your code in here
}else{
//Customer is not logged in
// your code in here
}
}
}
我们希望本文能帮助您检查客户是否已登录 Magento 2。祝您编码愉快!
版权声明:本站内容源自互联网,如有内容侵犯了你的权益,请联系删除相关内容。