我将Magento标头加载到Wordpress网站(在同一个域中)。目前在Wordpress header.php中有这个来拉入Magento标题:
require_once "shop/app/Mage.php";
umask(0);
Mage::app('default');
Mage::getSingleton('core/session', array('name'=>'frontend'));
$layout = Mage::app()->getLayout();
$layout->getUpdate()
->addHandle('default')
->load();
$layout->generateXml()
->generateBlocks();
$header = $layout->getBlock('header')->toHtml();
echo $header;
虽然有效,但它并没有提供购物车中正确的产品/商品数量。这是因为当你点击Wordpress网站时,它会设置一个会话ID,然后当你点击/购买它时会设置另一个。我试图将Magento中的cookie路径设置为/而不是/ shop,但后来我遇到了Wordpress主页所说的冲突:
Cannot send headers; headers already sent
如何通过修复cookie路径问题或其他方式在Magento和Wordpress之间共享会话ID?我已经尝试过在Stack Overflow上找到的一切,似乎没有任何工作......
答案 0 :(得分:0)
所以我使用此链接中的信息解决了这个问题:
http://developer.blueearth.net/2011/11/16/magento-wordpress-integration-part-1/
作者声明:
不要两次发送标题
接下来,我们需要阻止Magento在WordPress发送后发送标头。这可能会在以后的更多地方发生,但到目前为止我只遇到了登录问题。这次我们需要将App.php文件从〜/ app / code / core / Mage / Core / Model / App.php复制到〜/ app / code / local / Mage / Core / Model / App.php。找到函数“getResponse()”(在Magento版本1.6.1.0的第1221行)并注释掉以下行:
$this->_response->setHeader("Content-Type", "text/html; charset=UTF-8");
这可以防止Magento在您进入Wordpress站点时发送标头(由于两者链接在一起的方式,它能够首先发送标头)。我不知道这是否是理想的解决方案,但它确实有效,而且我现在可以在Wordpress和Magento之间共享购物车信息。我还更新了我原来的帖子,以反映我最后使用的更整洁的代码。