Magento新客户帐户确认模板编辑

时间:2012-07-23 10:19:08

标签: magento

我尝试在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文件中设置感谢页面。但这不起作用。

可以建议我解决这个问题的正确解决方案吗?

谢谢

1 个答案:

答案 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并根据需要进行重定向。