我正在自定义产品视图页面,我需要显示用户名。如何访问当前用户的帐户信息(如果他已登录)以获取名称等?
10 回答
在“app/code/core/Mage/Page/Block/Html/Header.php”下找到:
public function getWelcome()
{
if (empty($this->_data['welcome'])) {
if (Mage::app()->isInstalled() && Mage::getSingleton('customer/session')->isLoggedIn()) {
$this->_data['welcome'] = $this->__('Welcome, %s!', Mage::getSingleton('customer/session')->getCustomer()->getName());
} else {
$this->_data['welcome'] = Mage::getStoreConfig('design/header/welcome');
}
}
return $this->_data['welcome'];
}
所以看起来Mage::getSingleton('customer/session')->getCustomer()
会得到你当前登录的客户;)
获取当前登录的管理员:
Mage::getSingleton('admin/session')->getUser();
看看辅助类:Mage_Customer_Helper_Data
要简单地获取客户名称,您可以编写以下代码:-
$customerName = Mage::helper('customer')->getCustomerName();
有关客户的实体 ID、网站 ID、电子邮件等的更多信息,您可以使用getCustomer函数。以下代码显示了您可以从中获得什么:-
echo "<pre>"; print_r(Mage::helper('customer')->getCustomer()->getData()); echo "</pre>";
从 helper 类中,您还可以获取有关客户登录 url、注册 url、注销 url 等的信息。
从帮助类中的isLoggedIn函数中,您还可以检查客户是否已登录。
您可以通过以下方式从会话中获取当前登录客户名称:
$customer = Mage::getSingleton('customer/session')->getCustomer();
这将返回当前登录客户的客户详细信息。
现在您可以通过使用获取客户名称getName()
echo $customer->getName();
对于电子邮件使用此代码
$email=$this->__('Welcome, %s!', Mage::getSingleton('customer/session')->getCustomer()->getEmail());
echo $email;
$customer = Mage::getSingleton('customer/session')->getCustomer(); $customerAddressId = Mage::getSingleton('customer/session')->getCustomer()->getDefaultBilling(); $address = Mage::getModel('customer/address')->load($customerAddressId); $fullname = $customer->getName(); $firstname = $customer->getFirstname(); $lastname = $customer->getLastname(); $email = $customer->getEmail(); $taxvat = $customer->getTaxvat(); $tele = $customer->getTelephone(); $telephone = $address->getTelephone(); $street = $address->getStreet(); $City = $address->getCity(); $region = $address->getRegion(); $postcode = $address->getPostcode();
获取客户默认账单地址
对于用户名与一些修改相同:
$user=$this->__('Welcome, %s!', Mage::getSingleton('customer/session')->getCustomer()->getName());
echo $user;
通过以下方式,您可以访问登录用户的所有信息。
$customer_data=Mage::getSingleton('customer/session')->getCustomer();
echo "<pre>" print_r($customer_data);
这边走:
$email = Mage::getSingleton('customer/session')->getCustomer()->getEmail();
echo $email;
简单地,
$current_customer = $this->_getSession()->getCustomer();
这将返回客户对象,然后您可以从此客户对象中获取所有详细信息。
我不知道这一点,但在用户登录后查看显示用户名等的文件中的页面标题。如果您打开模板提示可能会有所帮助(请参阅this教程。
当您找到诸如 之类的行时"Hello <? //code for showing username?>"
,只需复制该行并将其显示在您需要的位置