Prestashop 如何使用getOrderShippingCost()返回装运步骤上的错误

Prestashop 如何使用getOrderShippingCost()返回装运步骤上的错误,prestashop,prestashop-1.5,Prestashop,Prestashop 1.5,我正在研制一个运载器模块。交付价格是从远程服务器动态获取的。 之后,使用modulename.php中的getOrderShippingCost()方法将价格包含在订单详细信息中。 所以,当客户设置正确的地址时,一切正常,价格计算正确。 但如果在任何地址字段中出现错误,例如找不到zipcode,则price仅设置为0 与0不同,我希望插入一条关于字段错误的注释,并阻止carrier,但不隐藏它 我可以从远程服务器的响应中确定哪个字段出错,但如何在订单流程的发货步骤中显示此信息? 目前,如果有错误

我正在研制一个运载器模块。交付价格是从远程服务器动态获取的。 之后,使用modulename.php中的getOrderShippingCost()方法将价格包含在订单详细信息中。 所以,当客户设置正确的地址时,一切正常,价格计算正确。 但如果在任何地址字段中出现错误,例如找不到zipcode,则price仅设置为0

与0不同,我希望插入一条关于字段错误的注释,并阻止carrier,但不隐藏它

我可以从远程服务器的响应中确定哪个字段出错,但如何在订单流程的发货步骤中显示此信息? 目前,如果有错误,我使用returnfalse。所以承运人只是没有显示

以下是我目前使用的基本代码方案:

public function getOrderShippingCost($params)
{
  ...
  if (no errors found)
    return $ret['total'];
  else
    return false;
    // instead of return false I would need something like
    // Tools::displayError('Error text'), or trigger a JS event
}

PS 1.5.4.1

如果其他人需要此功能,以下是我如何显示警告消息:

public function getOrderShippingCost($params)
{
  ...
  //error is defined as public variable
  $this->carrierError = $ret['errormsg'];
  if (no errors found)
    return $ret['total'];
  else
    return false;
  // when false is returned, carrier is not displayed, but warning message is displayed using hookDisplayHeader
}

public function hookDisplayHeader($params)
{
  if (isset($this->carrierError) &&
  Tools::getValue('controller') == 'order' &&
  Tools::getValue('step') == '2')
  {
     //running JS do display a warning message that carrier may be available if you fix the wrong field
     ...
  }
}