0

我需要在结帐时更改邮政编码(模块是 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));
}

我得到什么: 在此处输入图像描述

我应该得到什么:

在此处输入图像描述

4

0 回答 0