我尝试在magento中修改新的客户帐户确认模板。但它没有反映在前端。
我已在主题布局文件夹的customer.xml文件中编辑了customer_account_confirmation
的布局。
我在customer.xml中编辑了customer_account_confirmation
<customer_account_confirmation>
<remove name="right"/>
<remove name="left"/>
<reference name="root">
<action method="setTemplate"><template>page/account_confirm.phtml</template></action>
<action method="setHeaderTitle" translate="title" module="customer"><title>Send confirmation link</title></action>
</reference>
</customer_account_confirmation>
当我尝试点击邮件中的确认链接时,它会重定向到仪表板页面并显示确认消息。 但我需要在邮件
之后显示客户点击确认链接后的感谢页面我想在模板文件夹中的account_confirm.phtml文件中设置感谢页面。但这不起作用。
可以建议我解决这个问题的正确解决方案吗?
谢谢
答案 0 :(得分:2)
如果我说得对,那么问题是:当客户点击新帐户的确认链接时,如何更改调用的重定向网址?
在这种情况下,请检查负责默认重定向的控制器(即“仪表板”)。您可以通过检查确认链接中提供的URL轻松找到它,类似于http://www.yourdomain.com/customer/account/confirm/[some params]
。从这里获得控制器:您正在寻找confirmAction()
方法,该方法位于Customer Modul的AccountController.php
中。
在此方法结束时,定义了重定向:
public function confirmAction() {
(...)
// log in and send greeting email, then die happy
$this->_getSession()->setCustomerAsLoggedIn($customer);
$successUrl = $this->_welcomeCustomer($customer, true);
$this->_redirectSuccess($backUrl ? $backUrl : $successUrl);
return;
(...)
}
因此,在成功确认后,用户将被重定向到$backUrl
中提供的网址,或者,如果未提供此网址,则会重定向到$successUrl
中提供的网址。
如果确认链接网址包含参数$backUrl
,则在此confirmAction()
方法中定义第一个变量back_url
:
$backUrl = $this->getRequest()->getParam('back_url', false);
$succesUrl
的{{1}}方法返回第二个变量_welcomeCustomer()
,该方法设置指向AccountController
的网址,加载客户的信息中心。
因此,为了更改默认的Magento重定向,您可以确保使用indexAction()
参数创建确认链接(在我的情况下,例如,此参数为空);或者覆盖自定义模块中的back_url
并根据需要进行重定向。