Prestashop在注册表单中添加额外字段

时间:2012-08-07 05:49:41

标签: php e-commerce shopping-cart prestashop oscommerce

我正在建立一个prestashop网站

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

如何使它成为可能?

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

1 个答案:

答案 0 :(得分:1)

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

<?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()的静态调用的原因,但它可以通过任何简单的测试或{{{{ 1}}覆盖上面验证的类定义。如果您添加两个字段(即EIN编号),则仅在两者无效时才更改逻辑以处理生成错误;表单验证的成功基于AuthController为空。

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

hookCreateAccount

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