无法访问Wordpress中的Magento会话

时间:2013-12-18 19:37:06

标签: php wordpress magento session

我正在使用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。

有什么想法吗?

3 个答案:

答案 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)

有一个插件就是这样做的:

http://wordpress.org/plugins/mage-enabler/

答案 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());