我正在尝试从会话中获取客户会话数据(私人数据)并在其中一个块的前端显示。由于个性化,启用缓存时我没有获取数据。我寻找解决方案,发现使用 cacheable="false" 可以实现从启用缓存的会话中获取客户私有数据。但是我意识到整个页面都因此而没有被缓存。谁能帮助我在不使用 cacheable="false" 的情况下获取特定块中的数据?
问问题
1918 次
2 回答
0
$objectManager = \Magento\Framework\App\ObjectManager::getInstance();
$customerSession = $objectManager->create('Magento\Customer\Model\SessionFactory')->create();
通过这种方式,您可以使用客户会话而不使用cachable="false"
于 2018-02-12T11:30:17.460 回答
0
$objectManager = \Magento\Framework\App\ObjectManager::getInstance();
$customerSession = $objectManager->get('Magento\Customer\Model\Session');
$customer = $objectManager->get('Magento\Customer\Model\Customer')->load($customerSession->getId());
$cust_name = '';
$cust_email ='';
$cust_telephone ='';
if($customerSession->isLoggedIn()) {
$cust_name = $customerSession->getCustomer()->getName();
$cust_email = $customerSession->getCustomer()->getEmail();
if(!empty($customer->getPrimaryBillingAddress())){
$cust_telephone = $customer->getPrimaryBillingAddress()->getTelephone();
}
}
于 2018-12-06T09:17:19.127 回答