57

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

4

10 回答 10

94

在“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();
于 2009-01-16T22:51:18.563 回答
24

看看辅助类: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函数中,您还可以检查客户是否已登录。

于 2011-02-27T18:08:53.690 回答
10

您可以通过以下方式从会话中获取当前登录客户名称:

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

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

现在您可以通过使用获取客户名称getName()

echo $customer->getName();
于 2014-12-16T09:20:53.060 回答
9

对于电子邮件使用此代码

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

echo $email;
于 2009-12-12T16:45:39.120 回答
5
$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();

获取客户默认账单地址

于 2014-09-23T11:46:26.063 回答
4

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

$user=$this->__('Welcome, %s!', Mage::getSingleton('customer/session')->getCustomer()->getName());
echo $user;
于 2010-06-21T17:04:45.650 回答
4

通过以下方式,您可以访问登录用户的所有信息。

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


echo "<pre>" print_r($customer_data);
于 2013-07-22T07:30:04.027 回答
2

这边走:

$email = Mage::getSingleton('customer/session')->getCustomer()->getEmail();
echo $email;
于 2010-11-12T00:02:09.130 回答
2

简单地,

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

这将返回客户对象,然后您可以从此客户对象中获取所有详细信息。

于 2014-12-16T07:47:55.613 回答
-5

我不知道这一点,但在用户登录后查看显示用户名等的文件中的页面标题。如果您打开模板提示可能会有所帮助(请参阅this教程

当您找到诸如 之类的行时"Hello <? //code for showing username?>",只需复制该行并将其显示在您需要的位置

于 2009-01-06T13:50:27.423 回答