মেজেন্টো 2 তে কীভাবে বর্তমান গ্রাহক গোষ্ঠী আইডি পাবেন


16

আমি বর্তমান গ্রাহক পেতে চান গোষ্ঠী ID মধ্যে phtml ফাইল। আমি যখন লগইন না হয়ে থাকি তবে এটি সাধারণ ধরণের গ্রাহক গোষ্ঠীটি হয় । কিভাবে সঠিক আউটপুট পেতে পারেন?

উত্তর:


19

Magento\Customer\Model\Session $customerSession এই ক্লাসটি ব্যবহার করে আপনি বর্তমান গ্রাহক গোষ্ঠী আইডি পাবেন

protected $_customerSession;

public function __construct(
        \Magento\Customer\Model\Session $customerSession,
    ) {
        $this->_customerSession = $customerSession;
    }

public function getGroupId(){
 if($this->_customerSession->isLoggedIn()):
        echo $customerGroup=$this->_customerSession->getCustomer()->getGroupId();
    endif;
}

দ্রষ্টব্য: গ্রাহক লগ ইন থাকলে আপনি কেবল গ্রাহক আইডি পাবেন


7

আপনি কোড অনুসরণ করে গ্রুপ আইডি পেতে পারেন

protected $_customerSession;

public function __construct(
        ....    
        \Magento\Customer\Model\Session $customerSession,
        ....
    ) {


        $this->_customerSession = $customerSession;

    }

public function getGroupId(){
 if($this->_customerSession->isLoggedIn()):
        echo $customerGroup=$this->_customerSession->getCustomer()->getGroupId();
    endif;

}

আমি যখন লগইন না করে থাকি তবে এটি 1 (জেনারেল গ্রাহক দলের আইডি)
ফেরত আসে

1
@ রোহনহাপানি কোডটি দয়া করে চেক এবং প্রতিক্রিয়া যুক্ত করেছেন
কায়সার সত্তি

1
@ রোহনহাপানি আমি এই কোডটি পরীক্ষা করেছি এটি ব্যবহারকারীর লগ ইন না করার জন্য গ্রুপিড দেখাচ্ছে না আপনি কি if($this->_customerSession->isLoggedIn()):লোগডইন চেক করেছেন?
কায়সার সত্তী

হ্যাঁ ... এখন এটি কাজ করছে ... ধন্যবাদ স্যার :)
রোহান হাপানী

6

ডিফল্টরূপে, Magento গ্রাহক অধিবেশন পরিষ্কার হবে: \Magento\PageCache\Model\Layout\DepersonalizePlugin::afterGenerateXml

/magento//a/92133/33057

এটা দেখ:

বিক্রেতা / Magento / মডিউল গ্রাহক / মডেল / Context.php

/**
 * Customer group cache context
 */
const CONTEXT_GROUP = 'customer_group';
/**
 * Customer authorization cache context
 */
const CONTEXT_AUTH = 'customer_logged_in';

আমরা লগ ইন করা গ্রাহক এবং গ্রাহক গোষ্ঠীটি চেক করতে পারি:

 /**
 * @var \Magento\Framework\App\Http\Context $httpContext
 */
$isLogged = $this->httpContext->getValue(Context::CONTEXT_AUTH);
$customerGroupId = $this->httpContext->getValue(Context::CONTEXT_GROUP);

আপনার ব্লকে এই কোড লাইনগুলি রাখুন।

এখানে আরও একটি ভাল ব্যাখ্যা রয়েছে:

https://ranasohel.me/2017/05/05/how-to-get-customer-id-from-block-when-full-page-cache-enable-in-magento-2/


2

লগ ইন এবং লগ-ইন গ্রাহক উভয়ের জন্য বর্তমান গ্রাহক গোষ্ঠী আইডি এবং নাম পেতে এটি চেষ্টা করুন

protected $_customerSession;

protected $_customerGroupCollection;

public function __construct(
    ....    
    \Magento\Customer\Model\Session $customerSession,
    \Magento\Customer\Model\Group $customerGroupCollection,
    ....
) {


    $this->_customerSession = $customerSession;
    $this->_customerGroupCollection = $customerGroupCollection;

}

public function getCustomerGroup()
{
        echo $currentGroupId = $this->_customerSession->getCustomer()->getGroupId(); //Get current customer group ID
        $collection = $this->_customerGroupCollection->load($currentGroupId); 
        echo $collection->getCustomerGroupCode();//Get current customer group name
}

1
protected $_customerSession;

public function __construct(
        \Magento\Customer\Model\Session $customerSession,
    ) {
        $this->_customerSession = $customerSession;
    }

public function getGroupId(){
 if($this->_customerSession->isLoggedIn()):
        echo $customerGroup=$this->_customerSession->getCustomer()->getGroupId();
    endif;
}

এটি আপনার জন্য কার্যকর হতে পারে।


0

আপনি ক্যাচিং ব্যবহার করলে \ ম্যাজেন্টো \ গ্রাহক \ মডেল \ সেশনটি ব্যর্থ হতে পারে।

আপনার আরও ভাল ব্যবহার করা উচিত:

private $sessionProxy;

public function __construct(
    use Magento\Customer\Model\Session\Proxy $sessionProxy,
) {
    $this->sessionProxy= $sessionProxy;
}

// may return groupId or \Magento\Customer\Model\GroupManagement::NOT_LOGGED_IN_ID  
public function getGroupId(){
   $this->sessionProxy->getCustomer()->getGroupId();
}
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.