我需要在结帐时更改邮政编码(模块是 Onepagecheckout)。
目标是在存储在 wp_address 中的数据之前,根据地址所在的国家/地区执行邮政服务的 str_replace()。例如,如果国家是葡萄牙,则邮政编码格式为 NNNN-NNN。我必须用“”替换“-”。
我找到了将地址存储在数据库中的钩子,并且编辑工作得很好。但是有一个新问题:通常,当我选择国家时,模块会自动向我显示一些运送的可能性,而现在我编辑邮政编码的国家不会发生这种情况。
提供存储地址的钩子是 Hook::exec('actionSubmitCustomerAddressForm', array('address' => &$address));,在文件onepagecheckoutps.php
当然,与表 ww_ps_country 中的zip_code_format不兼容,有时他将 zip_code_format (NNNN-NN) 与邮政编码(将是 NNNNNN)进行比较。
但我不知道为什么我可以解决这个问题。这是我在 onepagecheckoutps.php => validateFieldsAddress()中的代码
...
if (!Validate::isDate($address->date_add)) {
$address->date_add = date('Y-m-d H:i:s');
}
if (!Validate::isDate($address->date_upd)) {
$address->date_upd = $address->date_add;
}
switch ($address->id_country) {
case 15 :
$address->postcode = str_replace("-","",$address->postcode);
case 13:
$address->postcode = substr($address->postcode,0,4);
case 125:
$address->postcode = substr($address->postcode,3);
case 12:
$address->postcode = substr($address->postcode,2);
}
Hook::exec('actionSubmitCustomerAddressForm', array('address' => &$address));
}
我应该得到什么: