2009-01-06 60 views
55

我正在自定义产品视图页面,我需要显示用户的名称。 如何访问当前用户的帐户信息(如果他已登录)以获取姓名等?Magento当前用户?

回答

91

“下的应用程序/代码/核心/法师/页/块/ 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(); 
-5

我不知道这是我的头顶,但在用户登录后在页面的标题中查看显示用户名等的文件。如果您启用了模板,它可能会有所帮助提示(见this tutorial

当你发现线路如"Hello <? //code for showing username?>",只需要复制该行,并显示在您需要

+0

的代码表明是<?PHP的echo $这个 - > getWelcome()?>在header.phtml得到客户的名称。不知道从哪里得到的名字... – 2009-01-06 14:27:46

+0

如果你可以编辑你的问题,并添加到该功能的输出,我可以写一些PHP代码为你提取用户名。 Magento有很多文件,因此可能很难判断某个特定函数的存储位置 – 2009-01-06 16:28:28

+0

谢谢,但我可以编写从欢迎字符串中提取名称的代码。 但是我希望能够读取名称以外的其他数据 - 特别是唯一的用户帐户ID。 – 2009-01-07 09:40:46

9

的电子邮件使用此代码

$email=$this->__('Welcome, %s!', Mage::getSingleton('customer/session')->getCustomer()->getEmail()); 

echo $email; 
4

对于用户名是相同的一些修改:

$user=$this->__('Welcome, %s!', Mage::getSingleton('customer/session')->getCustomer()->getName()); 
echo $user; 
2

这样:

$email = Mage::getSingleton('customer/session')->getCustomer()->getEmail(); 
echo $email; 
21

看一看辅助类:Mage_Customer_Helper_Data

为了简单地得到了客户的名字,你可以写下面的代码: -

$customerName = Mage::helper('customer')->getCustomerName(); 

有关客户的实体的更多信息ID,网站ID,电子邮件等,您可以使用getCustomer函数。下面的代码显示你可以从它那里得到: -

echo "<pre>"; print_r(Mage::helper('customer')->getCustomer()->getData()); echo "</pre>"; 

从辅助类,你还可以得到关于客户登录URL信息,注册的URL,注销URL等

isLoggedIn函数在助手类中,您还可以检查客户是否已登录。

4

以下方式可以从登录用户访问所有信息。

$customer_data=Mage::getSingleton('customer/session')->getCustomer(); 


echo "<pre>" print_r($customer_data); 
4
 
$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(); 
2

简单,

$current_customer = $this->_getSession()->getCustomer(); 

这将返回客户对象,那么你就可以得到该客户对象的所有细节。

8

您可以按以下方式从会话中获取当前登录用户名:

$customer = Mage::getSingleton('customer/session')->getCustomer(); 

这将返回当前登录用户的客户详细信息。

现在,您可以通过使用getName()

echo $customer->getName();