我正在研究运营商模块。从远程服务器动态提取交付价格。 之后,使用modulename.php中的getOrderShippingCost()方法将价格包含在订单详细信息中。 因此,当客户设置正确的地址时,一切正常,价格计算得当。 但是,如果任何地址字段中存在错误,例如找不到zipcode,则价格仅设置为0.
而不是0我想插入关于哪个字段错误并阻止载体的注释,但不要隐藏它。
我可以从远程服务器的响应中识别出哪个字段有问题,但是如何在订单处理的发货步骤中显示此信息? 目前,如果出现错误,我会使用return false。所以载体没有显示出来。
这是我现在使用的基本代码方案:
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
答案 0 :(得分: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
...
}
}