我正在使用Wordpress插件MWI - Mage / WP集成来创建一个以WordPress为核心,Magento在子文件夹中的网站。
我希望能够在Wordpress页面中访问Magento会话。感谢MWI插件,我可以访问“客户/会话”,但它似乎与我访问网站的Magento部分时使用的会话不同。
我知道这是因为我已经在Magento的会话中添加了数据,但当我来到主页(由Wordpress提供支持)时,自定义数据不存在!
以下是我在Magento中添加额外数据的方法:
Mage::getSingleton('customer/session')->setData("foo","bar");
然后得到它:
Mage::getSingleton('customer/session')->getData("foo");
返回NULL。
有什么想法吗?
答案 0 :(得分:2)
所以,经过多一点试验和错误我能够解决这个问题。
基本上,通过切换到核心/会话而不是客户/会话,我可以在Wordpress中访问相同的会话。所以设置&变得:
Mage::getSingleton('core/session')->setData("foo","bar");
Mage::getSingleton('core/session')->getData("foo");
在Wordpress中使用:
非常重要Mage::getSingleton('core/session', array('name' => 'frontend'))->getData("foo");
答案 1 :(得分:0)
有一个插件就是这样做的:
答案 2 :(得分:0)
另外,作为替代解决方案,我们可以使用帮助程序创建简单模块以获取会话变量。这是帮助返回Magento会话的助手:
class Namespace_Modulename_Helper_Data extends Mage_Core_Helper_Abstract
{
public function getSession()
{
return return Mage::getSingleton('core/session', array('name' => 'frontend'));
}
}
然后我们可以通过以下代码访问会话数据:
require_once('path_to/Mage.php');
Mage::app();
var_dump(Mage::helper('namespace_modulename')->getSession()->getData());