0

我们正在尝试做的事情

使用 Magento CE 1.7.0.2。我们正在使用单页结帐。我们需要用户注册结帐(没有客人结帐)。但是,我们需要他们能够在单页结账时登录和/或注册。

问题

我们不能使用 Magento 的默认选项“需要登录才能结帐”,因为它不允许用户访问结帐页面,除非他们已登录。

解决方案

嗯,我不知道……还没有。这是我尝试过的,但它导致 SagePay 出现各种灾难性的结帐问题(多笔交易):

if (!$this->getCustomerSession()->isLoggedIn()) {
    Mage::throwException(Mage::helper('checkout')->
      __('Please login. You must be logged in to checkout.'));
}

任何有用的输入表示赞赏,谢谢。

4

2 回答 2

0

去:模板/查出/onepage.phtml

**put this code on before page code**
<?php
          if (!$this->helper('customer')->isLoggedIn()) {
                header('Location: '.$this->getUrl('customer/account/login')) ;
                 exit();
          }
?>
于 2013-04-12T05:51:44.637 回答
0

综上所述:

这个功能的问题是:

  1. 我们无法检查用户是否登录,因为用户可以在此页面上注册,因此在他们注册之前,他们没有登录,因此他们将在提交时提供有效请求。
  2. 一页模块覆盖了 Magento 的一些默认验证行为,因此我们需要拦截模块的验证或编写我们自己的。

为了解决这个问题,我们最终验证了注册字段。如果这些为空(如果客人结账被禁用),则无法提交表单。有点丑,但是很实用。

希望其他人可以使用它。

于 2013-04-12T16:07:41.650 回答