【问题标题】:Current user in Magento?Magento 的当前用户?
【发布时间】:2010-09-29 19:33:48
【问题描述】:

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

【问题讨论】:

    标签: php magento


    【解决方案1】:

    在“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()
    【解决方案2】:

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

    【讨论】:

      【解决方案3】:

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

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

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

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

      echo $customer->getName();
      

      【讨论】:

        【解决方案4】:

        电子邮件使用此代码

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

        【讨论】:

          【解决方案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();

          获取客户默认帐单地址

          【讨论】:

          • 请在您的代码中添加说明。否则就不值钱了。
          • 您究竟需要解释什么? @shorabh 列出了获取客户数据所需的所有功能......每个程序员都应该理解这一点,任何非程序员都不应自己接触 magento 代码。
          【解决方案6】:

          用户名相同,但稍作修改:

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

          【讨论】:

            【解决方案7】:

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

            $customer_data=Mage::getSingleton('customer/session')->getCustomer();
            
            
            echo "<pre>" print_r($customer_data);
            

            【讨论】:

              【解决方案8】:

              这边:

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

              【讨论】:

                【解决方案9】:

                很简单,

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

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

                【讨论】:

                  【解决方案10】:

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

                  当你找到 "Hello &lt;? //code for showing username?&gt;" 这样的行时,只需复制该行并显示在你需要的地方

                  【讨论】:

                  • 在 header.phtml 中显示的代码是 getWelcome() ?>。不知道它的名字是从哪里来的......
                  • 如果您可以编辑您的问题并将该函数的输出添加到其中,我可以为您编写一些 PHP 代码以从中提取用户名。 Magento 拥有大量文件,因此很难判断特定函数的存储位置
                  • 谢谢,但我可以编写从欢迎字符串中提取名称的代码。但是,我希望能够读取除名称以外的其他数据 - 特别是唯一的用户帐户 ID。
                  猜你喜欢
                  • 1970-01-01
                  • 1970-01-01
                  • 2014-02-01
                  • 1970-01-01
                  • 1970-01-01
                  • 1970-01-01
                  • 1970-01-01
                  • 1970-01-01
                  相关资源
                  最近更新 更多