Magento - 如果没有登录,则"继续结账"按钮进入登录页面

Fla*_*akx 4 login checkout magento

当用户未登录(匿名)点击时Proceed to checkout,我希望他们被带到登录页面.然后,在他们登录或注册后,他们应该被带回结账页面.

我使用onepage结账,其中有你没有登录在登录部分,但是这是权力不希望这样.

最初,我开始改变checkout.xml这些值的路线:

<customer_logged_in>

    <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.phtml"/>
    </block>

</customer_logged_in>

<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_not_logged_in" name="checkout.cart.methods.onepage" template="checkout/onepage/link_not_logged_in.phtml"/>
    </block>

</customer_logged_out>
Run Code Online (Sandbox Code Playgroud)

而且link_not_logged_in.phtml:

$this->getLoginUrl();
Run Code Online (Sandbox Code Playgroud)

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

sea*_*den 7

转到您的网站admin.点击Stores.转到Configuration- > Sales- > Checkout- > Checkout Options并设置Allow Guest Checkout为"否"

edit

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

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

最后,安装Custom Login Redirecthttps://marketplace.magento.com/magehit-magehit-customloginredirect.html.转到管理员 - >系统 - >配置 - >客户 - >自定义登录重定向.设置为checkout/cart

搞定!我测试了它,它完成了你所描述的.通常我会通过所有各种步骤来完成这些扩展中存在的修订,但是您可以通过转到app/code/local并查看扩展代码来查看.