Я пытаюсь получить доступ к сеансу клиента Magento в другой части моего веб-сайта.
domain.com/shop/ <- Magento domain.com/test.php
Сам магазин работает как шарм, однако я пытаюсь определить в test.php, если клиент вошел в систему, поэтому я могу отобразить его имя со ссылкой на его корзину.
Содержание test.php :
<?php require_once dirname(__FILE__).'/shop/app/Mage.php'; umask(0); Mage::app('default'); Mage::getSingleton('core/session', array('name' => 'frontend')); var_dump(Mage::getSingleton('customer/session')->isLoggedIn()); ?>
по<?php require_once dirname(__FILE__).'/shop/app/Mage.php'; umask(0); Mage::app('default'); Mage::getSingleton('core/session', array('name' => 'frontend')); var_dump(Mage::getSingleton('customer/session')->isLoggedIn()); ?>
Я продолжаю возвращать bool (false) . Я зарегистрирован в Magento на домене.com/shop/, поэтому ожидается «истина».
Я что-то забыл?
Я бы рекомендовал проверить путь к файлу, который задает Magento. Скорее всего, он настроен на /shop
, поэтому cookie не будет доступен для вашего файла над ним.
Вы можете изменить путь, который использует Magento, чтобы установить его cookie на панели управления в разделе « System -> Configuration -> Web (under the General heading) -> Session cookie management
он находится под confuguration-> web
на Magento ver. 1.10.1.1
Эта же проблема сводила меня с ума. Я работал над следующим, пока последний элемент не решил его:
Если вы отметили все вышеперечисленное, убедитесь, что вы сначала инициализировали первый сеанс «frontend» следующим образом:
// Initialise the core "frontend" session Mage::getModel('core/session', array('name' => 'frontend'));
Затем вы можете получить доступ к клиенту / сеансу следующим образом:
$customer = Mage::getSingleton("customer/session", array('name' => 'frontend'))->getCustomer();