আমি বর্তমান গ্রাহক পেতে চান গোষ্ঠী ID মধ্যে phtml ফাইল। আমি যখন লগইন না হয়ে থাকি তবে এটি সাধারণ ধরণের গ্রাহক গোষ্ঠীটি হয় । কিভাবে সঠিক আউটপুট পেতে পারেন?
আমি বর্তমান গ্রাহক পেতে চান গোষ্ঠী ID মধ্যে phtml ফাইল। আমি যখন লগইন না হয়ে থাকি তবে এটি সাধারণ ধরণের গ্রাহক গোষ্ঠীটি হয় । কিভাবে সঠিক আউটপুট পেতে পারেন?
উত্তর:
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;
}
দ্রষ্টব্য: গ্রাহক লগ ইন থাকলে আপনি কেবল গ্রাহক আইডি পাবেন
আপনি কোড অনুসরণ করে গ্রুপ আইডি পেতে পারেন
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;
}
if($this->_customerSession->isLoggedIn()):
লোগডইন চেক করেছেন?
ডিফল্টরূপে, Magento গ্রাহক অধিবেশন পরিষ্কার হবে: \Magento\PageCache\Model\Layout\DepersonalizePlugin::afterGenerateXml
।
এটা দেখ:
বিক্রেতা / 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);
আপনার ব্লকে এই কোড লাইনগুলি রাখুন।
এখানে আরও একটি ভাল ব্যাখ্যা রয়েছে:
লগ ইন এবং লগ-ইন গ্রাহক উভয়ের জন্য বর্তমান গ্রাহক গোষ্ঠী আইডি এবং নাম পেতে এটি চেষ্টা করুন
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
}
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;
}
এটি আপনার জন্য কার্যকর হতে পারে।
আপনি ক্যাচিং ব্যবহার করলে \ ম্যাজেন্টো \ গ্রাহক \ মডেল \ সেশনটি ব্যর্থ হতে পারে।
আপনার আরও ভাল ব্যবহার করা উচিত:
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();
}