Im trying to access the Magento customer session in another part of my website.
domain.com/shop/ <- Magento domain.com/test.php
The shop itself works like a charm, however im trying to determine within test.php if a customer is logged in, so I can display his name with a link to his cart.
Contents of test.php so far:
<?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()); ?>
I keep getting bool(false) returned. I'm logged into Magento at domain.com/shop/ so ‘true’ is expected.
Am I forgetting something?
I would recommend checking the path of the cookie that Magento sets. Most likely, it is set to
/shop, so the cookie will not be accessible to your file above it.
You can modify the path that Magento uses to set its cookie in the control panel under
System -> Configuration -> Web (under the General heading) -> Session cookie management
The same issue was driving me mad. I worked through the following until the last item solved it:
If you've checked all the above, make sure you initialize a core "frontend" session on its own first like this:
// Initialise the core "frontend" session Mage::getModel('core/session', array('name' => 'frontend'));
Then you can access the customer/session like this:
$customer = Mage::getSingleton("customer/session", array('name' => 'frontend'))->getCustomer();