1

我正在建立一个 prestashop 网站

企业买家无法注册帐户以查看产品,除非他们可以在注册时输入有效的 EIN 号码或有效的 Duns & Brandstreet 号码。

如何使它成为可能?

还有其他任何电子商务软件可以通过切换到它来帮助我解决这个问题吗?

4

1 回答 1

1

您真正需要做的就是将字段添加到模板中,然后AuthController使用其他代码覆盖以处理新字段。例如

<?php
class AuthController extends AuthControllerCore
{     
  public function preProcess()
  {
    // Additional pre-processing for the new form field
    if (Tools::isSubmit('submitAccount'))
    {
      if (!MyDBNumberValidationClass::verifyvalidnumber(Tools::getValue('db_number_field', 0)))
        $this->errors[] = Tools::displayError('The Dun and Bradstreet number you entered is invalid.'); 
    }
    parent::preProcess();
  }
}

我假设您正在对数字进行复杂的验证,这就是MyDBNumberValidationClass::verifyvalidnumber()上面的静态调用的原因,但它同样可以通过任何简单的测试或上面覆盖类定义中的附加函数AuthController来验证。如果您添加两个字段(即 EIN 编号),那么只需更改逻辑以处理仅在两者均无效时生成错误;表单验证的成功基于$this->errors为空。

这只是一般解决方案的一部分,因为它只处理验证额外字段。如果您需要对输入的数据进行实际操作,那么最好的方法是编写一个小处理程序模块,将其安装在hookCreateAccount例如

public function hookCreateAccount($params)
{
  // Get the field data entered on the form
  $DB_number = $params['_POST']['db_number_field'];

  // Your custom processing...
}

请注意,无法从此处退出帐户创建,因此您需要添加代码以在出现问题时向店主发送电子邮件。

于 2012-08-07T06:56:48.433 回答