当未登录的用户(匿名)点击Proceed to checkout
时,我希望将他们带到登录页面。然后,在他们登录或注册后,他们应该被带回结帐页面。
我正在使用单页结帐,其中包含您尚未登录的登录部分,但 的权力不希望这样。
最初,我开始改变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>
link_not_logged_in.phtml
:
$this->getLoginUrl();
但这甚至没有拉我的新phtml文件,我甚至不确定这会带我到结账页面之后。任何文章或帮助大大收到。
答案 0 :(得分:7)
转到您网站的admin
。点击System
。转到Configuration
- &gt; Sales
- &gt; Checkout
- &gt; 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();
}
?>
最后,在https://marketplace.magento.com/magehit-magehit-customloginredirect.html安装Custom Login Redirect
。转到管理员 - &gt;系统 - &gt;配置 - &gt;客户 - &gt;自定义登录重定向。将其设置为checkout/cart
全套!我测试了它,它完成了你所描述的。通常我会通过所有各种步骤来完成这些扩展中存在的修订,但是您可以通过转到app / code / local并查看扩展代码来查看。
答案 1 :(得分:0)
您没有尝试访问的块Mage / Checkout / Block / Onepage / Link / Not / Logged / In.php
如果您直接在结帐/ onepage / link_not_logged_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>
因此,您的块类型必须与标准
中的块类型相同答案 2 :(得分:0)
seanbreeden的回答指出了我正确的方向,但我认为可以提供一些额外的信息和一些改进。
您需要将结帐中的重定向添加到登录页面。一个简单的地方是在结帐模板中。如果您使用单页结帐和默认设计,则为app/design/frontend/default/default/template/remove/checkout/onepage.phtml
。只需将此代码添加到该模板的顶部(<?php ?>
标记内)。
if (!$this->helper('customer')->isLoggedIn()) {
// Add a message that will display on the login page
Mage::getSingleton('core/session')->addError('Please log in or create an account to checkout.');
// Create the redirection
header("Location: " . $this->helper('customer')->getLoginUrl());
exit();
}
请注意getLoginUrl()
的使用,这将允许Magento在用户登录后重定向到结帐页面。