我在OWEBIA Shipping 2.0中使用此JSON代码在我的magento商店中创建送货方式:
{“demo”:{“label”:“3diasúteis”,“条件”: “({cart.price + tax + discount}> 59.89)&&({shipto.postcode}> 88000000) &安培;&安培; ({shipto.postcode}< 88124999)“,”费用“:10,”customer_groups“: “3”}}
它工作正常,但巴西邮政编码使用连字符! 它就像这个xxxxx-xxx 如何从用户在字段上插入的字符串中删除“ - ”? 非常感谢!
答案 0 :(得分:1)
只要我记得Magento是基于PHP的,那么你首先需要这样做:
$response = json_decode($json_response); // this will convert the json object into php array;
然后为了避免删除所有超量(如果你在其他任何地方需要它们)搜索带有邮政编码的属性并执行此操作:
$postcode_without_hyphens = str_replace('-','', $response->post_code); //example
问候!如果您需要任何进一步的帮助或解释,请告诉我! :)
答案 1 :(得分:1)
为时已晚?
我有同样的问题。但是检查Owebia代码后,我找到了解决方案。
解决方案是添加一个验证器,以仅允许邮政编码中的数字:
文件:app / code / community / Owebia / Shipping2 / Model / ConfigParser.php第152行
更改此功能:
protected function _extract($data, $attributes)
{
$extract = array();
foreach ($attributes as $to => $from) {
$extract[$to] = isset($data[$from]) ? $data[$from] : null;
}
return $extract;
}
对此:
protected function _extract($data, $attributes)
{
$extract = array();
foreach ($attributes as $to => $from) {
// Here we validate the info, check if the current attribute is the postcode
if($from == "dest_postcode"){
//So we use preg_replace to allow only digits
$data[$from] = preg_replace('/\D/', '', $data[$from]);
}
$extract[$to] = isset($data[$from]) ? $data[$from] : null;
}
return $extract;
}