Magento 马根托';继续结帐';如果未登录,则转到登录页面的按钮

Magento 马根托';继续结帐';如果未登录,则转到登录页面的按钮,magento,login,checkout,Magento,Login,Checkout,当未登录(匿名)的用户单击“继续签出”,我希望他们进入“登录”页面。然后,在他们登录或注册后,应将他们带回签出页面 我使用的是onepage checkout,它有一个你没有登录的登录部分,但是那些权力机构不希望这样 最初,我开始更改checkout.xml以获得以下值: 结账前付款方式按钮 结账前付款方式按钮 和链接\u未登录\u。phtml: $this->getLoginUrl(); 但这甚至没有拉我的新phtml文件,我甚至不确定这会带我到结帐页后。收到任何文章或帮助。请访问您网站

当未登录(匿名)的用户单击“继续签出”,我希望他们进入“登录”页面。然后,在他们登录或注册后,应将他们带回签出页面

我使用的是onepage checkout,它有一个你没有登录的登录部分,但是那些权力机构不希望这样

最初,我开始更改
checkout.xml
以获得以下值:


结账前付款方式按钮
结账前付款方式按钮
链接\u未登录\u。phtml

$this->getLoginUrl();

但这甚至没有拉我的新phtml文件,我甚至不确定这会带我到结帐页后。收到任何文章或帮助。

请访问您网站的
管理员
。单击
存储
。进入
配置
->
销售
->
结帐
->
结帐选项
并将
允许客人结帐设置为“否”`

编辑

打开
app/design/frontend/base/default/template/checkout/onepage.phtml
。将以下代码放在文件的最顶端:

   <?php
          if (!$this->helper('customer')->isLoggedIn()) {
                 header("Location: /customer/account/login/");
                 exit();
          }
   ?>

最后,在上安装
自定义登录重定向。转到管理->系统->配置->客户->自定义登录重定向。将其设置为
checkout/cart


一切就绪!我测试了这个,它符合你所描述的。通常情况下,我会通过所有的步骤来完成这些扩展中的修订,但是通过转到app/code/local并查看扩展代码,您可以看到这一点。

您没有试图访问的block-Mage/Checkout/block/Onepage/Link/Not/Logged/in.php

如果您直接在签出/onepage/link\u not\u logged\u in.phtml中创建此链接,则必须使用此代码

<customer_logged_out>
    <block type="core/text_list" name="checkout.cart.top_methods" as="top_methods" translate="label">
        <label>Payment Methods Before Checkout Button</label>
        <block type="checkout/onepage_link" name="checkout.cart.methods.onepage" template="checkout/onepage/link_not_logged_in.phtml"/>
    </block>
</customer_logged_out>

结账前付款方式按钮

因此,您的区块类型必须与standart中的区块类型相同,seanbreeden的回答为我指明了正确的方向,但我认为还有一些额外的信息和一些改进可以做

您需要添加从签出到登录页面的重定向。执行此操作的一个简单位置是在签出模板中。如果您使用的是onepage签出和默认设计,那将是
app/design/frontend/default/default/template/remove/checkout/onepage.phtml
。只需将此代码添加到该模板的顶部(在
标记内)

if(!$this->helper('customer')->isLoggedIn(){
//添加将显示在登录页面上的消息
Mage::getSingleton('core/session')->addError('请登录或创建要签出的帐户');
//创建重定向
标题(“位置:”.$this->helper('customer')->getLoginUrl());
退出();
}

注意使用了
getLoginUrl()
,这将允许Magento在用户登录后重定向到签出页面。

这是当前的设置方式。我们不希望客户在一页结账屏幕上登录/注册我们,我们希望他们在登录/创建帐户页面上这样做。嗨,肖恩,我不需要安装插件,只需将php代码:添加到onepage.phtml文件就可以了。我还可以利用它在空闲时隐藏和显示登录/注册按钮。@TejabhagavanKollepara Done。嗨,Kudja,对v延迟响应表示歉意。我不太清楚你的意思是什么?嗨,我已经测试了你的代码,但在我的情况下,Magento将重定向回购物车,而不是带我去结帐页面。有什么问题吗?