我用的是Mangeto 1.9.1
我试图在magento根目录中的php文件中访问magento之外的magento客户会话。
这是我的代码:
<?php
error_reporting(E_ALL | E_STRICT);
$mageFilename = 'app/Mage.php';
require_once $mageFilename;
$app = Mage::app('default');
Mage::app();
$customer_id = Mage::getSingleton('customer/session')->getId();
$GrandTotal = Mage::getModel('sales/quote')->loadByCustomer($customer_id)->getGrandTotal();
$HalfTotal = $GrandTotal / 2;
echo "Grand: $GrandTotal<br>Half: $HalfTotal";
?> 我的magento安装在像beta.mymagento.com这样的子域上
但是它似乎不能访问会话。我怎么才能修好它?
提前感谢!
发布于 2014-11-10 21:20:49
由于Magento将其会话ID存储在与典型PHP应用程序不同的cookie中,因此您在选择正确的会话时遇到了问题。您需要首先初始化一个核心会话,并告诉它查看一个名为前端的cookie,而不是任何默认的。您的代码应该如下所示:
...
Mage::getSingleton('core/session', array('name' => 'frontend'));
$customer_id = Mage::getSingleton('customer/session')->getId();
...而且,您很可能只需要一个对Mage::app()的调用。
注意:如果在Magento安装中有多个商店/网站,则必须使用适当的标识符(如Mage::app() )调用Mage::app('<website_code>', 'website');。
https://stackoverflow.com/questions/26821922
复制相似问题