2009-01-06 17 views
55

Estoy personalizando la página de vista del producto y necesito mostrar el nombre del usuario. ¿Cómo accedo a la información de la cuenta del usuario actual (si ha iniciado sesión) para obtener el nombre, etc.?¿Usuario actual en Magento?

Respuesta

91

encuentra en "app/código/core/Mago/Página/Bloquear/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']; 
} 

Parece Mage::getSingleton('customer/session')->getCustomer() recibirá su actual conectado al cliente;)

para obtener haya iniciado la sesión de administración:

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

'Mage :: app() -> isInstalled()' está en desuso, puede usar 'Mage :: isInstalled()' ahora. – mhyassin

-5

No lo sé de sobra, pero mire en el archivo que muestra el nombre del usuario, etc. en el encabezado de la página después de que el usuario haya iniciado sesión. Puede ser útil si activa la plantilla consejos (ver this tutorial.

Cuando encuentre la línea como "Hello <? //code for showing username?>", simplemente copiar esa línea, el documento presentado donde tiene que

+0

El código que demuestra que es getWelcome()?> En header.phtml. No tengo idea de dónde obtiene el nombre de ... –

+0

Si puede editar su pregunta y agregarle el resultado de esa función, puedo escribir un código PHP para que pueda extraer el nombre de usuario. Magento tiene miles de millones de archivos, por lo que puede ser bastante difícil saber dónde se almacena una función en particular –

+0

Gracias, pero puedo escribir el código que extrae el nombre de la cadena de bienvenida. Sin embargo, esperaba poder leer otros datos además del nombre, específicamente, una identificación de cuenta de usuario única. –

9

de correo electrónico utilizan el código

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

echo $email; 
4

Por nombre de usuario es igual con algunas modificaciones:

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

De esta manera:

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

Tener un vistazo a la clase de ayuda: Mage_Customer_Helper_Data

Para conseguir simplemente el nombre del cliente, puede escribir el siguiente código: -

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

Para obtener más información sobre la entidad del cliente id, id de sitio web, correo electrónico, etc. puede usar la función getCustomer. El código siguiente muestra lo que puede obtener de ella: -

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

De la clase de ayuda, también se puede obtener información sobre URL de inicio de sesión del cliente, regístrese url, url cierre de sesión, etc.

Desde el IsLoggedIn función en la clase de ayuda, también puede verificar si un cliente está conectado o no.

4

De la siguiente manera puede acceder a toda la información del usuario registrado.

$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

Por favor, agregue una explicación a su código. De lo contrario, no vale la pena. – lxg

+3

¿Para qué necesitas una explicación exactamente? @shorabh enumeró todas las funciones necesarias para captar clientes daata ... Cada programador debería entender esto y ningún programador debe tocar el código de magento por sí mismos. –

2

Simplemente,

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

Esto devuelve el objeto al cliente, entonces se puede obtener todos los detalles de este objeto al cliente.

8

Usted puede obtener el nombre de usuario actual al cliente de la sesión en la siguiente forma:

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

Esto devolverá los datos del cliente de cliente actual de inicio de sesión.

Ahora puede obtener el nombre del cliente mediante el uso de getName()

echo $customer->getName(); 
Cuestiones relacionadas