有没有办法在 prestashop 的承运人中按州设置运费?
即,假设我希望在阿拉巴马州发送的运费不同于在阿拉斯加使用同一承运人发送的运费
谢谢
有几种方法可以做到这一点。你可以购买一个外部模块,比如这个,或者像这样创建一个覆盖:
1) 将“classes/Address.php”复制到“override/classes/Address.php”。
2) 在第 28 行,将类名从 AddressCore 更改为 Address
3) 在函数 getZoneById 之前,粘贴这个新函数
/**
* Return postcode of address
*
* @param $id_address Address id
* @return integer postcode
*/
public static function getPostcodeByAddress($id_address){
$row = Db::getInstance()->getRow('
SELECT `postcode`
FROM '._DB_PREFIX_.'address a
WHERE a.`id_address` = '.(int)($id_address));
return $row['postcode'];
}
4) 在函数 getZoneById 的第一行之前添加:
$postcode=self::getPostcodeByAddress($id_address);
if(in_array($postcode,array(your list of postcodes))){
return id-of-your-zone;
}
这对我有用: