【发布时间】:2010-09-29 19:33:48
【问题描述】:
我正在自定义产品视图页面,我需要显示用户名。 如何访问当前用户的帐户信息(如果他已登录)以获取名称等?
【问题讨论】:
我正在自定义产品视图页面,我需要显示用户名。 如何访问当前用户的帐户信息(如果他已登录)以获取名称等?
【问题讨论】:
在“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::app()->isInstalled() 已弃用,您现在可以使用Mage::isInstalled()。
查看帮助程序类: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;
【讨论】:
获取客户默认帐单地址
【讨论】:
用户名相同,但稍作修改:
$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 tutorial。
当你找到 "Hello <? //code for showing username?>" 这样的行时,只需复制该行并显示在你需要的地方
【讨论】: