act*_*Dev 1 magento magento-1.9
在Magento 1.9成功注册后,我想将所有客户重定向到自定义页面.
我尝试了很多东西.首先,我成功地覆盖了核心客户帐户控制器.
我试图自定义以下操作:
尝试设置重定向网址或设置BeforeAuthUrl
//$successUrl = $this->_getUrl('*/*/index', array('_secure' => true));
$successUrl = $this->_getUrl('*/*/success');
$this->_getSession()->setBeforeAuthUrl('http://test.local/customer/account/success/');
if ($this->_getSession()->getBeforeAuthUrl()) {
$successUrl = $this->_getSession()->getBeforeAuthUrl(true);
}
return $successUrl;
Run Code Online (Sandbox Code Playgroud)
请注意,此时$ successUrl在此处返回时是正确的.我看到有一些后期调度方法,我假设这些方法会破坏这个网址并始终返回到客户/帐户/索引.
我已经阅读了几个关于这个主题的帖子,但找不到解决这个问题的明确答案.
我甚至设置了隐藏的表单元素'success_url',试图按照其他地方提供的步骤作为解决方案.
为了能够显示一次性注册成功页面,需要遵循的完整,正确的流程是什么?
我知道这是一个老线程,也许这将有助于其他人试图完成同样的事情.您可以直接在register.phtml模板中设置重定向URL,而无需修改控制器或创建模块.您可以使用隐藏的输入设置成功和错误URL.
<input type="hidden" name="success_url" value="my-custom-success-url.html" />
<input type="hidden" name="error_url" value="my-custom-error-url.html" />
Run Code Online (Sandbox Code Playgroud)
我使用它将用户重定向回他们进入登录/注册过程的位置,如下所示:
<?php $ref = $this->getRequest()->getParam('referer');?>
<input type="hidden" name="success_url" value="<?php echo !empty($ref)?Mage::helper('core')->urlDecode($ref):$this->getSuccessUrl(); ?>" />
Run Code Online (Sandbox Code Playgroud)