将登录验证添加到Magento Checkout

hiure 发布于 2019-03-09 checkout 最后更新 2019-03-09 14:35 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.'));
}
任何有用的输入赞赏,谢谢。
已邀请:

zomnis

赞同来自:

结论是: 这个功能的问题是:

  1. 我们无法检查用户是否已登录,因为用户可以在此页面上注册,因此在他们注册之前,他们没有登录,因此他们将在提交时提供有效请求。
  2. 单页模块正在覆盖Magento的一些默认验证行为,因此我们需要拦截模块的验证或编写自己的验证。
为了解决这个问题,我们最终验证了注册字段。如果这些是空的(如果禁用了访客结账),则无法提交表单。有点丑,但功能。 希望其他人可以使用它。

nquis

赞同来自:

Go: template/chackout/onepage.phtml
**put this code on before page code**
<?php
          if (!$this->helper('customer')->isLoggedIn()) {
                header('Location: '.$this->getUrl('customer/account/login')) ;
                 exit();
          }
?>