2009-01-06 12 views
55

Dostosowuję stronę widoku produktu i muszę wyświetlić nazwę użytkownika. Jak uzyskać dostęp do informacji o koncie bieżącego użytkownika (jeśli jest on zalogowany), aby uzyskać nazwę itp.?Bieżący użytkownik w Magento?

Odpowiedz

91

znaleźć w „app/code/core/Mage/Strona/pustak/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']; 
} 

Wygląda na to, że Mage::getSingleton('customer/session')->getCustomer() dostanie prąd zalogowany klienta;)

Aby aktualnie zalogowany admin:

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

'Mage :: app() -> isInstalled()' jest przestarzałe, możesz teraz użyć 'Mage :: isInstalled()'. – mhyassin

-5

Nie znam tego z mojej głowy, ale spójrz w plik, który pokazuje nazwę użytkownika itp. W nagłówku strony po zalogowaniu użytkownika. Może to pomóc, jeśli włączysz szablon wskazówki (patrz this tutorial.

Po znalezieniu linii, takich jak "Hello <? //code for showing username?>", wystarczy skopiować tą linią i pokazać je gdzie trzeba

+0

Kodeksu pokazując, że jest getWelcome()?> W header.phtml. Nie mam pojęcia, skąd bierze nazwę ... –

+0

Jeśli możesz edytować swoje pytanie i dodawać do niego dane wyjściowe tej funkcji, mogę napisać dla ciebie kod PHP, aby wyodrębnić z niego nazwę użytkownika. Magento ma gazillions plików, więc może być dość trudno powiedzieć, gdzie konkretna funkcja jest przechowywana –

+0

Dzięki, ale mogę napisać kod, który wyodrębnia nazwę z łańcucha powitalnego. Jednak miałem nadzieję, że będę mógł odczytać inne dane poza nazwą - konkretnie unikalny identyfikator konta użytkownika. –

9

na email użyć tego kodu

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

echo $email; 
4

Dla użytkownika jest to samo z pewnymi zmianami:

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

W ten sposób:

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

Wystarczy popatrzeć na klasy pomocnika: Mage_Customer_Helper_Data

po prostu uzyskać nazwę klienta, można napisać następujący kod: -

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

Aby uzyskać więcej informacji na temat jednostki klienta id, identyfikator strony, adres e-mail itp. można użyć funkcji getCustomer. Poniższy kod pokazuje, co można dostać od niego: -

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

Z klasy pomocnika, można również uzyskać informacje na temat klienta URL logowania, wylogowania zarejestrować adres URL, adres URL, itp

Z isLoggedIn funkcja w klasie pomocnika, można również sprawdzić, czy klient jest zalogowany, czy nie.

4

Następujący sposób umożliwia dostęp do wszystkich informacji zalogowanego użytkownika.

$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

Proszę dodać objaśnienie do swojego kodu. W przeciwnym razie nie jest to warte wiele. – lxg

+3

do czego dokładnie potrzebujesz wyjaśnienia? @shorabh podał listę wszystkich funkcji potrzebnych do pobrania danych o klientach ... Każdy programista powinien to zrozumieć, a żaden programista nie powinien samemu dotykać kodu magento. –

2

Wystarczy,

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

ta zwraca obiekt klienta, można uzyskać wszystkie dane z tego obiektu klienta.

8

można uzyskać bieżącą nazwę logowania klienta od sesji w następujący sposób:

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

ta zwróci dane klientów bieżącego logowania klienta.

Teraz można uzyskać nazwę klienta za pomocą getName()

echo $customer->getName(); 
Powiązane problemy