2009-01-06 6 views
55

Ich passe die Produktansichtsseite an und muss den Benutzernamen anzeigen. Wie kann ich auf die Kontoinformationen des aktuellen Benutzers zugreifen (wenn er angemeldet ist), um Name usw. zu erhalten?Aktueller Benutzer in Magento?

Antwort

91

gefunden unter „app/code/core/Mage/Seite/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']; 
} 

So sieht es aus wie Mage::getSingleton('customer/session')->getCustomer() Ihre aktuelle eingeloggte Kunden bekommen;)

die derzeit im Admin angemeldet zu erhalten:

Mage::getSingleton('admin/session')->getUser(); 
+1

'Mage :: app() -> isInstalled()' ist veraltet, Sie können jetzt 'Mage :: isInstalled()' verwenden. – mhyassin

-5

Ich weiß es nicht von Anfang an, aber in der Datei, die den Namen des Benutzers, usw. in der Kopfzeile der Seite zeigt, nachdem der Benutzer angemeldet ist. Es könnte hilfreich sein, wenn Sie die Vorlage eingeschaltet (Hinweise this tutorial sehen.

Wenn Sie die Zeile wie "Hello <? //code for showing username?>" finden, kopieren Sie einfach die Linie und es zeigen, wo Sie zu

benötigen
+0

Der Code zeigt das ist getWelcome()?> In header.phtml. Keine Ahnung, woher der Name kommt ... –

+0

Wenn du deine Frage editieren und ihr die Ausgabe dieser Funktion hinzufügen kannst, kann ich PHP-Code schreiben, um den Benutzernamen daraus zu extrahieren. Magento hat unzählige Dateien, daher kann es ziemlich schwierig sein zu sagen, wo eine bestimmte Funktion gespeichert ist. –

+0

Danke, aber ich kann den Code schreiben, der den Namen aus der Willkommenszeichenkette extrahiert. Ich hoffte jedoch, in der Lage zu sein, andere Daten als den Namen zu lesen - insbesondere eine eindeutige Benutzerkonto-ID. –

9

für E-Mail diesen Code verwenden

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

echo $email; 
4

Für Benutzernamen mit einigen Änderungen gleich ist:

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

Auf diese Weise:

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

Werfen Sie einen Blick auf die Hilfsklasse: Mage_Customer_Helper_Data

einfach, um den Namen des Kunden zu erhalten, können Sie den folgenden Code schreiben: -

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

Weitere Informationen über das Unternehmen des Kunden ID, Website-ID, E-Mail, etc. Sie können getCustomer Funktion verwenden. Der folgende Code zeigt, was Sie von ihm bekommen können: -

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

Von der Hilfsklasse, können Sie auch Informationen über Kunden-Login-URL erhalten, registrieren url, logout url usw.

Vom isLoggedIn Funktion in der Hilfsklasse, können Sie auch prüfen, ob ein Kunde angemeldet ist oder nicht.

4

Der folgende Weg Sie können auf alle Informationen von angemeldeten Benutzer zugreifen.

$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(); 
+1

Bitte fügen Sie Ihrem Code eine Erklärung hinzu. Ansonsten ist es nicht viel wert. – lxg

+3

Was genau brauchen Sie zu erklären? @shorabh hat alle Funktionen aufgezählt, die benötigt werden, um Kunden Daata zu holen ... Jeder einzelne Programmierer sollte dies verstehen und kein Nicht-Programmierer sollte den Magento-Code selbst anfassen. –

2

einfach,

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

Dies gibt das Kundenobjekt, dann können Sie alle Details von diesem Kunden-Objekt erhalten.

8

Sie können aktuellen Login-Namen des Kunden von Sitzung in folgenden Weise erhalten:

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

Dies wird die Kundendaten der aktuellen Login-Kunden zurück.

Jetzt können Sie den Kundennamen erhalten, indem getName()

echo $customer->getName();