Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/magento/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Magento中不带GET参数的开关存储_Php_Magento_Redirect - Fatal编程技术网

Php Magento中不带GET参数的开关存储

Php Magento中不带GET参数的开关存储,php,magento,redirect,Php,Magento,Redirect,我想从一个商店做一个不可见的重定向到另一个我设置的多商店 在我的模块中,目前我正在使用此代码段,但它显示GET参数: echo '<p><a href="' . Mage::getUrl() . '?___store=' . $store . '">pick up this restaurant</a></p>' 我怎样才能做到这一点 Thx将存储代码添加到URL您可以从管理页面启用此功能也许您可以使用表单方法post,并根据处理的数据,使用PO

我想从一个商店做一个不可见的重定向到另一个我设置的多商店 在我的模块中,目前我正在使用此代码段,但它显示GET参数:

echo '<p><a href="' . Mage::getUrl() . '?___store=' . $store . '">pick up this restaurant</a></p>'
我怎样才能做到这一点


Thx

将存储代码添加到URL您可以从管理页面启用此功能

也许您可以使用表单方法post,并根据处理的数据,使用POST表单设置商店:Mage::app->setCurrentStorestore_id

,这意味着在使用“后退”按钮时,客户可能会遇到恼人的问题,需要在浏览器中刷新此页面。另一种方法是在某些早期事件期间(例如,在控制器预调度期间),从www.example.com/?\uuuuuuuuuu store=1重定向到www.example.com。仅当存在___;存储参数时重定向


更好的方法是为每个商店提供不同的域。这样就完全避免了uuuuu store参数,并向客户提供了明确的反馈,即他们位于正确的站点。

您可以将存储代码放入cookie中,并让index.php检查cookie是否存在,如果存在,则通过其代码加载存储,如果不显示默认存储。

您必须为存储设置COOKIE

例如:

Mage::app()->setCurrentStore($storeViewId);
Mage::app()->getCookie()->set(Mage_Core_Model_Store::COOKIE_NAME, 'de', TRUE);

de = Store code.

我不想在URL中显示代码存储,即使它不是GET参数,因为完整的网站必须看起来像一个唯一的存储,它必须对用户透明,这是一个好主意,但这正是我的想法,提交一个带有存储id作为POST值的表单,通过magento函数setCurrentStore更改存储并重定向到主页,但我无法使其正常工作,我将重试并返回此处,thx寻求建议。确实,需要刷新消息可能很烦人,我将尝试您的解决方案,您知道控制器预调度位于哪个文件中吗?关于多网站解决方案,我只有一个域名,但我可能会将我的配置从multistore更改为MultiSite,此配置切换是否会干扰我当前的问题?有许多控制器,您无法全部更改它们,因此请收听所有页面上所有控制器发生的事件。您将需要为此进行更改。您可以将不同的域(或子域)添加到多层,而无需更改为多网站设置。他们都是以同样的方式配置的。我接受你的答案,即使我现在切换到另一个项目,但它会回来的!这对我起了作用。总而言之,切换存储只需要两行代码:Mage::app->setCurrentStore$storeViewId;Mage::app->getCookie->setMage\u Core\u Model\u Store::COOKIE\u NAME,$storeViewCode,TRUE;另外,关于OP的评论说他将尝试更多的服务器端解决方案,我很确定这些是服务器端cookie。