After logged in Magento frontend. I need to get ID of user on which account I am currently logged in.
Please help.
After logged in Magento frontend. I need to get ID of user on which account I am currently logged in.
Please help.
Try with changing the session object
<?php
namespace YourCompanyName\YourModuleName\Block;
class YourCustomBlock extends \Magento\Framework\View\Element\Template
{
protected $_customerSession;
public function __construct(
\Magento\Framework\View\Element\Template\Context $context,
\Magento\Customer\Model\SessionFactory $customerSession,
array $data = []
) {
$this->_customerSession = $customerSession->create();
parent::__construct($context, $data);
}
public function getLoggedinCustomerId() {
if ($this->_customerSession->isLoggedIn()) {
return $this->_customerSession->getId();
}
return false;
}
public function getCustomerData() {
if ($this->_customerSession->isLoggedIn()) {
return $this->_customerSession->getCustomerData();
}
return false;
}
}
Now, we can use the functions in our view (.phtml) file as follows.
$customerId = $block->getLoggedinCustomerId();
echo 'Customer Id: ' . $customerId;
$customerData = $block->getCustomerData();
if($customerData) {
echo 'Customer Id: ' . $customerData->getId() . '<br/>';
echo 'Customer Name: ' . $customerData->getName() . '<br/>';
echo 'Customer Email: ' . $customerData->getEmail() . '<br/>';
echo 'Customer Group Id: ' . $customerData->getGroupId() . '<br/>';
}
Try with objectmanger
$om = \Magento\Framework\App\ObjectManager::getInstance();
$customerSession = $om->get('Magento\Customer\Model\Session');
if($customerSession->isLoggedIn()) {
$customerSession->getCustomer()->getId();
$customerSession->getCustomer()->getName();
$customerSession->getCustomer()->getEmail();
$customerSession->getCustomer()->getGroupId(); // get Customer Group Id
}
You can use this below code in your block file :
protected $customerSession;
/**
* Construct
*
* @param \Magento\Framework\View\Element\Template\Context $context
* @param \Magento\Customer\Model\Session $customerSession
* @param array $data
*/
public function __construct(
\Magento\Framework\View\Element\Template\Context $context,
\Magento\Customer\Model\Session $customerSession,
array $data = []
) {
parent::__construct($context, $data);
$this->customerSession = $customerSession;
}
public function getCustomerId()
{
$customerId = '';
if($this->customerSession->isLoggedIn()){
$customerId = $this->customerSession->getCustomer()->getId();
}
return $customerId;
}