Làm cách nào để kiểm tra xem khách hàng có đăng nhập hay không trong magento 2?


64

Cách tìm kiếm nếu khách hàng đăng nhập hay không trong Magento 2.

Nếu khách hàng đã đăng nhập thì làm sao để lấy dữ liệu khách hàng từ phiên?


không có giải pháp nào được đề cập ở đây làm việc cho tôi. @Rakesh: bạn có thể chia sẻ cách nó làm việc cho bạn không?
Tuyến đường Ipsita

Hãy nhớ rằng nếu bạn cần kiểm tra trạng thái đã đăng nhập từ bên trong mô-đun Magento JS ( text/x-magento-init), thì bạn có thể lưu một số chi phí bằng cách tránh khởi tạo ObjectManager và chuyển trạng thái đến đối tượng cấu hình của mô-đun và thay vào đó truy vấn liên kết đăng nhập từ trong mô-đun JS, ví dụ:var isLoggedIn = $('.authorization-link > a').attr('href').indexOf('/login')<0;
thdoan


1
Những dòng dưới đây đang làm gì? var isLoggedIn = $ ('. ủy quyền-liên kết> a'). attr ('href'). indexOf ('/ login') <0;
Jaisa

Kiểm tra liên kết, rakeshjesadiya.com/ Hãy
Rakesh Jesadiya

Câu trả lời:


62

Theo mã bạn có thể kiểm tra đăng nhập của khách hàng hay không ở bất cứ đâu

$ objectManager = \ Magento \ Framework \ App \ ObjectManager :: getInstance ();
$ customerSession = $ objectManager-> get ('Magento \ Khách hàng \ Model \ Phiên');
if ($ customerSession-> isLoggedIn ()) {
   // hành động đăng nhập của khách hàng
}

Từ bộ điều khiển

$ this -> _ objectManager-> get ('Magento \ Khách hàng \ Model \ Phiên');
if ($ customerSession-> isLoggedIn ()) {
   // hành động đăng nhập của khách hàng
}

1
Tất nhiên, đó là giải pháp rõ ràng nhất và tôi đã sử dụng nó lần đầu tiên, nhưng sau đó tôi nhận thấy rằng nó không hoạt động chính xác khi phiên khách hàng chưa được khởi tạo, vì vậy tôi đã tìm thấy một giải pháp ít rõ ràng hơn nhưng bền vững hơn.
Mage2.PRO

11
Người ta không nên sử dụng objectmanager trực tiếp. Đơn giản chỉ cần tiêm mã được tạo ObjectFactory cho mô hình phiên.
CarComp

6
xin vui lòng không sao chép câu trả lời khác trong câu trả lời của bạn.
Marius

6
Đây là cách "sai", câu trả lời từ Raphael tại Digital Pianism là câu hỏi khó nhất
Lorenzo

1
Nếu bạn đã bật bộ đệm toàn bộ trang và bạn gọi nó trong khối / mẫu, thì nó không hoạt động vì phiên khách hàng sẽ luôn trả về sản phẩm nào. Sử dụng bối cảnh http để kiểm tra thay thế.
leo

84

Nhắc nhở quan trọng: Không bao giờ nên gọi trực tiếp Trình quản lý đối tượng

Vì vậy, đây là cách để làm điều đó một cách sạch sẽ

Trong bất kỳ lớp học nào ngoại trừ các mẫu

Trước tiên bạn cần tiêm lớp sau vào hàm tạo của mình /Magento/Customer/Model/Session::

protected $_session;

public function __construct(
    ...
    \Magento\Customer\Model\Session $session,
    ...
) {
    ...
    $this->_session = $session;
    ...
}

Sau đó, trong lớp của bạn, bạn có thể gọi như sau:

if ($this->_session->isLoggedIn()) {
    // Customer is logged in 
} else {
    // Customer is not logged in
}

Trong một mẫu

Nó đòi hỏi nhiều công việc hơn trong một mẫu vì bạn sẽ phải thiết lập tùy chọn cho khối kết xuất lại mẫu để thực hiện theo cách sạch sẽ:

<preference for="Block\That\Renders\The\Template"
            type="Vendor\Module\Block\Your\Custom\Block" />

Sau đó, trong máy tạo khối tùy chỉnh của bạn, bạn cần tuân theo cách tiêm phụ thuộc tương tự như đối với bất kỳ lớp nào (giải thích ở trên).

Bước bổ sung ở đây là tạo một phương thức công khai có thể được sử dụng trong mẫu của bạn để kiểm tra xem khách hàng có đăng nhập hay không

public function isCustomerLoggedIn()
{
    return $this->_session->isLoggedIn();
}

Sau đó, trong mẫu của bạn, bạn có thể gọi:

if ($block->isCustomerLoggedIn()) {
    // Customer is logged in
} else {
    // Customer is not logged in
}

Thay thế nếu phiên khách hàng chưa được khởi tạo

Có một cách khác để làm điều đó ngụ ý sử dụng Magento\Framework\App\Http\Contextthay vìMagento/Customer/Model/Session

Sau đó, bạn có thể gọi $this->_context->getValue(\Magento\Customer\Model\Context::CONTEXT_AUTH)thay vì $this->_session->isLoggedIn()kiểm tra xem khách hàng đã đăng nhập hay chưa.

Tuy nhiên phương pháp này có thể cung cấp cho bạn các kết quả khác nhau , tôi khuyên bạn nên đọc câu trả lời tuyệt vời này để biết thêm thông tin: https://magento.stackexchange.com/a/92133/2380


Nên đặt <preference ... />thẻ ở đâu trong một chủ đề tùy chỉnh? Chính xác là gì Block\That\Renders\The\TemplateVendor\Module\Block\Your\Custom\Block?
Andrea

@Andrea tốt, nó phụ thuộc và nó khác nhau cho từng trường hợp. Đó là lý do tại sao tôi sử dụng tên đường dẫn lớp chung trong câu trả lời của mình
Raphael tại Digital Pianism

Tôi có một khối tùy chỉnh được định nghĩa là class Html extends \Magento\Framework\View\Element\Templatenơi tôi có thể tiêm đối tượng phiên trong hàm tạo. Tôi sử dụng khối này trong chủ đề tùy chỉnh của mình theo cách này (từ bố cục tệp xml) : <block class="Vendor\ThemeName\Block\Html" template="Vendor_ModuleName::html/my-custom-template.phtml"/>. Tôi muốn kiểm tra người dùng đã đăng nhập trong tệp mẫu my-custom-template.phtml. Tôi nên sử dụng thẻ `<ưu tiên ... /> như thế nào?
Andrea

Không hoạt động đối với tôi phương thức -> isLoggedin (). Tôi không biết tại sao nhưng nó không bao giờ trả lại rằng khách hàng đã đăng nhập và thực tế là vậy! Nó được đăng nhập (Tôi đã đăng nhập).
Vladimir Despotovic

@VladimirDespotovic bạn đã thử nghiệm phương pháp thay thế chưa?
Raphael tại Pianism kỹ thuật số

31

Có thể thông qua Magento\Framework\App\Http\Contexthoặc thông qua Magento\Customer\Model\Session. Tuy nhiên, kết quả có thể khác nhau:

  • Bối cảnh HTTP được khởi tạo sớm hơn phiên khách hàng (nhưng không thành vấn đề vì cả hai đều được khởi tạo trong bộ điều khiển hành động)
  • Khi PageCachemô-đun được bật (có thể luôn luôn được sản xuất), hãy nhớ rằng ngay khi bắt đầu tạo bố cục, phiên khách hàng sẽ bị xóa \Magento\PageCache\Model\Layout\DepersonalizePlugin::afterGenerateXmltrên tất cả các trang có thể lưu trong bộ nhớ cache. Điều đó có nghĩa là nếu bây giờ bạn kiểm tra xem khách hàng có đăng nhập qua ngữ cảnh HTTP hay không, nó vẫn sẽ nói 'có', nhưng dữ liệu khách hàng sẽ không còn khả dụng trong phiên khách hàng nữa. Vì vậy, kiểm tra lại là cần thiết trước khi cố gắng truy cập dữ liệu trong phiên khách hàng. Điều này có thể dễ dàng xảy ra trong khối, trong khi không có khả năng trong bộ điều khiển hành động vì bạn không mong muốn tạo bố cục theo cách thủ công ở đó, nó sẽ được tạo sau khi bộ điều khiển hành động trả về thể hiện củaResultInterface

Để loại bỏ mọi rủi ro về sự không nhất quán được mô tả khi bật PageCache, hãy xem xét sử dụng phiên khách hàng, nếu nó đã được khởi tạo (đúng cho bộ điều khiển hành động). Khác sử dụng bối cảnh HTTP.


gợi ý tuyệt vời cho PageCache được bật, thx
LucScu

3
@Alex Tôi đang sử dụng mã bên dưới $ customerSession = $ objectManager-> get ('Magento \ Framework \ App \ http \ Context'); $ isLoggedIn = $ customerSession-> getValue (\ Magento \ Khách hàng \ Model \ Context :: CONTEXT_AUTH); Nhưng do kích hoạt bộ đệm, nó hiển thị tùy chọn Đăng nhập thay vì Đăng xuất để đăng nhập khách hàng. Làm thế nào tôi nên sửa lỗi này?
Nitesh

Điều này bit chúng tôi trong ass, cảm ơn bạn. Câu trả lời của bạn cần được chú ý nhiều hơn :-) Bộ đệm được kích hoạt trong sản xuất khiến phiên trở nên khó khăn. Đặt cacheable = false trong tệp XML của tuyến nếu bạn đang viết các plugin magento tùy chỉnh.
Ligemer

2
Tại sao bạn phải đặt cacheable = false?
LucScu

15
/** @var \Magento\Framework\App\ObjectManager $om */
$om = \Magento\Framework\App\ObjectManager::getInstance();
/** @var \Magento\Framework\App\Http\Context $context */
$context = $om->get('Magento\Framework\App\Http\Context');
/** @var bool $isLoggedIn */
$isLoggedIn = $context->getValue(\Magento\Customer\Model\Context::CONTEXT_AUTH);

Vậy làm thế nào để có được người đăng ký là đăng nhập @ Mage2.PRO?
xanka

8
Bạn không bao giờ nên sử dụng ObjectManager trực tiếp
7ochem

Vâng, đồng ý. Objectmanager không phải là con đường để đi. Tiêm khách hàng vào trong hàm tạo của lớp.
CarComp

Giải pháp trên không hiệu quả với tôi
Ipsita Rout

@lpsita Hãy cho tôi biết nếu bạn có vấn đề này? Tôi vừa sửa nó :)
Jai

10

Không có giải pháp nào trong số này làm việc cho tôi. Một số trang sẽ xuất hiện để đăng nhập nhưng những trang khác thì không. Có vẻ như đây là lỗi:

https://github.com/magento/magento2/issues/3294

Tôi đã kết thúc việc tạo một trình trợ giúp mà tôi có thể gọi trong các mẫu của mình:

<?php
namespace MyVendor\MyModule\Helper;

use Magento\Framework\App\Helper\AbstractHelper;

/**
 * Created by Carl Owens (carl@partfire.co.uk)
 * Company: PartFire Ltd (www.partfire.co.uk)
 **/
class Data extends AbstractHelper
{
    /**
     * @var \Magento\Framework\App\Http\Context
     */
    private $httpContext;

    public function __construct(
        \Magento\Framework\App\Helper\Context $context,
        \Magento\Framework\App\Http\Context $httpContext
    ) {
        parent::__construct($context);
        $this->httpContext = $httpContext;
    }

    public function isLoggedIn()
    {
        $isLoggedIn = $this->httpContext->getValue(\Magento\Customer\Model\Context::CONTEXT_AUTH);
        return $isLoggedIn;
    }
}

Sau đó, tôi có thể sử dụng trình trợ giúp trong các mẫu của mình như vậy:

<?php
$helper = $this->helper('MyVendor\MyModule\Helper\Data');

if ($helper->isLoggedIn()) {
    //show something
}

Đó là sự thật, mã duy nhất làm việc với tôi là của bạn. Cảm ơn bạn!
George George

Làm cách nào tôi có thể gọi ->getCustomer()->getName()bằng cách sử dụng ngữ cảnh, bởi vì nếu tôi sử dụng Phiên không hoạt động cho tất cả các trang.
George George

nếu bộ đệm toàn bộ trang được bật thì đây là câu trả lời đúng. Bạn có thể kiểm tra khách hàng trước và nếu điều đó trả về sai, bạn có thể thực hiện việc này
CompactCode

9

Để khiến người dùng đăng nhập tại mẫu, bạn chỉ cần gọi người trợ giúp chỉ trong một dòng duy nhất:

<?php $_loggedin = $this->helper('Magento\Checkout\Helper\Cart')->getCart()->getCustomerSession()->isLoggedIn(); ?>

<?php if( $_loggedin ) : ?>

     <div><!-- add your code --></div>

<?php endif; ?>

Giải pháp tốt đẹp mà không cần sử dụng objectmanager.
Nitesh

2
Điều này không hoạt động trong v2.1.5 với FPC và Varnish được bật trong chế độ sản xuất.
thdoan

8

Không có giải pháp nào ở đây hoạt động với tôi một cách đáng tin cậy trong Magento v2.1 với Bộ đệm toàn bộ trang và Varnish được bật trong chế độ Sản xuất. Cuối cùng tôi đã tìm thấy một giải pháp hoạt động 100% thời gian với tất cả bộ nhớ đệm được kích hoạt sau khi có ý tưởng từ đó vendor/magento/module-theme/view/frontend/templates/html/header.phtml. Đây là giải pháp của tôi, hiển thị liên kết "Đăng nhập" khi người dùng đăng xuất và liên kết "Đăng xuất" khi người dùng đăng nhập:

<li data-bind="scope: 'customer'">
  <!-- ko if: customer().firstname  -->
  <a href="<?php echo $this->getUrl('customer/account/logout'); ?>" style="display:none;" data-bind="style: {display:'inline'}"><?php echo __('Sign Out') ?></a>
  <!-- /ko -->
  <!-- ko ifnot: customer().firstname  -->
  <a href="<?php echo $this->getUrl('customer/account/login'); ?>" style="display:none;" data-bind="style: {display:'inline'}"><?php echo __('Sign In') ?></a>
  <!-- /ko -->
  <script type="text/x-magento-init">
  {
    "*": {
      "Magento_Ui/js/core/app": {
        "components": {
          "customer": {
            "component": "Magento_Customer/js/view/customer"
          }
        }
      }
    }
  }
  </script>
</li>

CẬP NHẬT: Vì v2.1.5, giải pháp này không còn đáng tin cậy. Xem vấn đề 9156 để biết giải pháp.


Đó là một giải pháp tốt. Mặc dù bạn có thể sử dụng cacheable = "false" trong tệp bố cục.
Dinesh Yadav

Tôi có cachable="false"bố cục XML cho khối này, nhưng véc ni vẫn lưu vào bộ đệm. Không chắc đây có phải là lỗi hay không, nhưng Knockout là một cách tốt để phá vỡ điều này. Nhược điểm duy nhất là có một chút chậm trễ trước khi liên kết Đăng nhập / Xuất hiện vì liên kết KO.
thdoan

6

Có rất nhiều câu trả lời ngoài kia giống như thế này ...

NHẬN MỤC TIÊU QUẢN LÝ LOAD LÊN MÔ HÌNH LỚP

Đây là phương pháp SAU để sử dụng trong Magento2.0. Trong 2.0, các nhà máy đối tượng được tạo tự động là con đường để đi. Bạn có thể đưa chúng vào hàm tạo của bạn trong hầu hết mọi lớp và sử dụng chúng. Thí dụ:

public function __construct(
            Context $context,
            CollectionFactory $cmspageCollectionFactory,
            array $data = [],
            CustomerFactory $customerFactory,
            SessionFactory $sessionFactory)
        {
            parent::__construct($context, $data);
            $this->_cmspageCollectionFactory = $cmspageCollectionFactory;
            $this->customerFactory = $customerFactory;
            $this->sessionFactory = $sessionFactory;
        }

        /**
         * @return \Stti\Healthday\Model\ResourceModel\Cmspage\Collection
         */
        public function getCmspages()
        {
            // First check to see if someone is currently logged in.
            $customerSession = $this->sessionFactory->create();
            if ($customerSession->isLoggedIn()) {
                // customer is logged in;
                //$customer = $this->customerFactory->create()->get
            }

2
Nếu bạn gặp lỗi cho các nhà máy, thì hãy sử dụng đường dẫn đầy đủ, vd \Magento\Customer\Model\SessionFactory $sessionFactory.
thdoan

Chính xác. Tôi thường khai báo chúng ở trên cùng, vì vậy các phương thức của tôi không giống như một mớ hỗn độn lớn :)
CarComp

3

Xin chào đã có câu trả lời ở đây:

$objectManager = \Magento\Framework\App\ObjectManager::getInstance();
$customerSession = $objectManager->create('Magento\Customer\Model\Session');

if ($customerSession->isLoggedIn()) {
    $customerSession->getCustomerId();  // get Customer Id
    $customerSession->getCustomerGroupId();
    $customerSession->getCustomer();
    $customerSession->getCustomerData();

    echo $customerSessionget->getCustomer()->getName();  // get  Full Name
    echo $customerSessionget->getCustomer()->getEmail(); // get Email
}

Nguồn .

$customerSession = $objectManager->get('Magento\Customer\Model\Session');

Thay thế get với tạo bây giờ hoạt động tốt:

$customerSession = $objectManager->create('Magento\Customer\Model\Session');

4
Bạn không bao giờ nên sử dụng ObjectManagertrực tiếp
7ochem

Điều này chỉ hoạt động nếu bộ nhớ cache bị vô hiệu hóa không có trong bộ đệm được kích hoạt.
Jai

@Jai, công việc này đối với tôi trong phát triển và sản xuất là tốt. Xin vui lòng gửi cho tôi các bước để tái tạo vấn đề?
Manish

Tôi phải kiểm tra xem người dùng có đăng nhập hay không. Nhưng mã bên dưới chỉ hoạt động trong bộ đệm bị vô hiệu hóa $ objectManager = \ Magento \ Framework \ App \ ObjectManager :: getInstance (); $ customerSession = $ objectManager-> tạo ('Magento \ Khách hàng \ Mô hình \ Phiên'); if ($ customerSession-> isLoggedIn ()) {// CODE}
Jai

Trong bật bộ nhớ cache: Nó chỉ hoạt động trên các trang bảng điều khiển tùy chỉnh không có trong trang chủ và các trang khác của trang web. Câu hỏi của tôi: magento.stackexchange.com/q/177964/29175
Jai

3

Đây cũng là một trong những giải pháp "Kiểm tra xem Khách hàng có đăng nhập hay không trong Magento2"

Hãy thử mã dưới đây:

 $om = \Magento\Framework\App\ObjectManager::getInstance();
 $context = $om->get('Magento\Framework\App\Http\Context');
 $isLoggedIn = $context->getValue(\Magento\Customer\Model\Context::CONTEXT_AUTH);
 if($isLoggedIn){
      echo "Yes Customer loggedin";
      echo "<pre>";print_r($context->getData()); 
 }

2

Hãy thử mã dưới đây:

<?php
namespace YourCompany\ModuleName\Helper;

class Data extends \Magento\Framework\App\Helper\AbstractHelper
{
    public function __construct(
        \Magento\Framework\App\Helper\Context $context,
        \Magento\Customer\Model\Session $customerSession
    ) {
        $this->customerSession = $customerSession;
        parent::__construct($context);
    }

public function isLoggedIn() // You can use this fucntion in any phtml file
    {
        return $this->customerSession->isLoggedIn();
    }
}

Để sử dụng mã trên trong tệp phtml, bạn có thể gọi hàm isLoggedIn () là:

<?php $helper = $this->helper('YourCompany\ModuleName\Helper\Data'); ?>
<?php if($helper->isLoggedIn()) : ?>
    logged in
<?php else : ?>
    not logged in
<?php endif; ?> 

Mong sự giúp đỡ này cảm ơn.


xin chào @Shubdham, nó không hoạt động ..
jafar pinjar

đây là một giải pháp gọn gàng cảm ơn
Hỏi Byte

Vâng cảm ơn hy vọng nó sẽ giúp bạn.
Shubham Khandelwal

2

Tôi đã có được giải pháp tốt nhất. Nó dựa trên xác thực của khách hàng . Một số trường hợp phiên khách hàng không hoạt động, nhưng mỗi khi giải pháp của tôi sẽ hoạt động. Hãy xem xét.

<?php
$objectManager = \Magento\Framework\App\ObjectManager::getInstance();
$customerSession = $objectManager->get('Magento\Customer\Block\Account\AuthorizationLink');
if ($customerSession->isLoggedIn() == true) {
//your code.
} ?>

Cảm ơn.


1

Giải pháp hiện tại (IMHO)

<?php

namespace My\Module\Helper\Data;

/**
 * @var \Magento\Framework\ObjectManagerInterface
 */
protected $objectManager;

/**
 * @var \Magento\Customer\Model\SessionFactory
 */
protected $customerSession;

/**
 * Class Data
 */
class Data extends \Magento\Framework\App\Helper\AbstractHelper
{
    /**
     * @param \Magento\Framework\ObjectManagerInterface $objectManager
     */
    public function __construct(
         \Magento\Framework\ObjectManagerInterface $objectManager
    )
    {
        $this->objectManager   = $objectManager;
        $this->customerSession = $this->objectManager->create('Magento\Customer\Model\SessionFactory')->create();
    }

    /**
     * @return \Magento\Customer\Model\SessionFactory
     */
    public function getCustomerSession()
    {
       return $this->customerSession;     
    }

    /**
     * @return bool
     */
    public function isCustomerLoggedIn()
    {
        return ($this->getCustomerSession()->isLoggedIn()) ? true : false;
    }
}

1

Nếu bạn muốn kiểm tra khách hàng đã đăng nhập hay không thì hãy sử dụng mã này trong các tệp phtml,

$om = \Magento\Framework\App\ObjectManager::getInstance();
$appContext = $om->get('Magento\Framework\App\Http\Context');
$isLoggedIn = $appContext->getValue(\Magento\Customer\Model\Context::CONTEXT_AUTH);
if($isLoggedIn) {
    /** LOGGED IN CUSTOMER, this should work in template   **/
}

2
Bạn không bao giờ nên sử dụng ObjectManagertrực tiếp và bạn không bao giờ nên sử dụng loại mã này trong một mẫu. Bạn nên tạo các chức năng trong lớp khối của mình để quản lý việc này.
7ochem

Một khi bạn biết làm thế nào để làm điều đó một cách chính xác, bạn tự hỏi làm thế nào bạn từng quản lý để làm điều đó theo cách khác!
CarComp

0
$objectManager = \Magento\Framework\App\ObjectManager::getInstance();
$customerSession = $objectManager->get('Magento\Customer\Model\Session');

if($customerSession->isLoggedIn()) {

}

0

Một câu trả lời khác:

<?php $_loggedin = $block->getLayout()->createBlock('Magento\Customer\Block\Account\AuthorizationLink')->isLoggedIn() ?>
 <?php if( $_loggedin ) : ?>
   // your code
 <?php endif; ?>

Bạn nghĩ sao?


0

Tìm nạp trạng thái đã ghi từ mô hình Phiên sẽ không hoạt động trong trường hợp bạn muốn sử dụng nó sau khi bật bộ đệm FPC mặc định của Magento, trong trường hợp đó, bạn nên sử dụng Phiên làm việc thay thế.

Phiên không được bắt đầu nếu bộ nhớ đệm FPC được bật, chi tiết: https://github.com/magento/magento2/issues/3294#issuecomment-328464943

Để giải quyết điều này, bạn phải sử dụng SessionFactory, ví dụ:

/**
* @var \Magento\Customer\Model\Session
*/
protected $_customerSessionFactory;

public function __construct(
    ....
    \Magento\Customer\Model\SessionFactory $customerSessionFactory
    ....
) 
{
    ....
    $this->_customerSessionFactory = $customerSessionFactory;
    ....
}

public function getCustomerId(){
  $customer = $this->_customerSessionFactory->create();
  echo $customer->getCustomer()->getId();
}

-1

Tôi đã thử nhiều cách tìm thấy trên google nhưng không có giải pháp nào hoạt động. Vì vậy, tôi đã kiểm tra chức năng cốt lõi và tạo một tệp php để kiểm tra khách hàng có đăng nhập hay không mà không cần sử dụng Trình quản lý đối tượng.


            / **
         * Phiên khách hàng
         * Mô-đun được tạo bởi Mã công nghệ web
         * Được phát triển bởi Vinay Sikarwar
         * @var \ Magento \ Framework \ Ứng dụng \ http \ Bối cảnh
         * /
        bảo vệ phiên $;

        / **
         * Đăng ký xây dựng.
         * @param Bối cảnh $ bối cảnh
         * @param mảng $ data
         * /
        chức năng công cộng __construct (
            Bối cảnh $ bối cảnh,
                    \ Magento \ Framework \ Phiên \ Chung $ phiên,
            mảng $ dữ liệu
        )
        {
                    $ này -> _ phiên = $ phiên;
                    cha mẹ :: __ xây dựng ($ bối cảnh, $ dữ liệu);
        }

            / **
         * Kiểm tra trạng thái đăng nhập của khách hàng
         *
         * @api
         * @return bool
         * /
        Hàm công khai isCustomerLoggedIn ()
        {
            return (bool) $ this-> getCustomerId ()
                && $ this-> checkCustomerId ($ this-> getId ())
                &&! $ this-> getIsCustomerEmulation ();
        }
    }

Để biết thêm thông tin, hãy kiểm tra tại đây http: //blog.webt Technologycodes.com/customer-loggedin-check-magento2

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.