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