2016-01-18 4 views
0

я испытываю некоторые странные результаты при использовании Magento вMagento - GetCustomer() дает неожиданные результаты

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

У меня есть следующий код для первой проверки, если клиент вошел в систему, и если это так, чтобы получить ПгвЬЫате из вошедшего клиента:

if(!$this->helper('customer')->isLoggedIn()) 
{ 
    $name = Mage::getSingleton('customer/session')->getCustomer()->getFirstname(); 
    print 'Hello '.$name; 
    // ... 
} 

Большую часть времени это работает отлично, и если Joe Bloggs регистрируется в то выводит:

Hello Joe 

Но каждый сейчас и потом, и это, кажется, когда большое количество клиентов, которые вошли в систему я получаю неожиданные выходы с другими именами

Hello Lucy 
or 
Hello John 

Является ли Mage::getSingleton('customer/session')->getCustomer() ошибкоустойчивый способ получения деталей клиентов или его возможно, он получает еще одну информацию о клиентах? Или у меня проблемы с моими сеансами?

ответ

0

В соответствии с основным кодом в Mage_Customer_Model_Session::getCustomer:

/** 
* Retrieve customer model object 
* 
* @return Mage_Customer_Model_Customer 
*/ 
public function getCustomer() 
{ 
    if ($this->_customer instanceof Mage_Customer_Model_Customer) { 
     return $this->_customer; 
    } 

    $customer = Mage::getModel('customer/customer') 
     ->setWebsiteId(Mage::app()->getStore()->getWebsiteId()); 
    if ($this->getId()) { 
     $customer->load($this->getId()); 
    } 

    $this->setCustomer($customer); 
    return $this->_customer; 
} 

... нет никакого способа, которым данные другого клиента может быть загружен (основной Magento).

Прежде всего, он вернет модель клиента, если она уже загружена, если нет, то загрузите ее, если уже есть идентификатор, и, наконец, он вернет пустую модель клиента, если ничего другого.

Возможно, что ваши сеансы перемешаны. Я предлагаю вам проверить вашу конфигурацию - используете ли вы базы данных, файлы, Redis и т. Д. Для хранения сеансов?

+1

Спасибо, посмотрев на это больше, это было до полного кэша страниц в моем магазине. Смешение создания соответствующих страниц без кеширования или отверстий для пробивки блоков теперь, похоже, сбивает трюк –