2009-01-06 90 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();