我有一个自定义字段,当用户完成订单时,我必须在woocommerce购物车中更新
以下功能:
$moreinfo_values = get_post_meta($_product->id,'more_info_data');
给我数组:
Array
(
[0] => Array
(
[0] => Array
(
[m] => NSW
[o] => Sydney
[d] => Something
[p] => Array
(
[0] => 13/08/2015
[1] => 14/08/2015
)
[n] => 9am - 4pm
[f] => 20
)
[1] => Array
(
[m] => SA
[o] => Adelaide
[d] => Hotel SA 5000
[p] => Array
(
[0] => 02/04/2015
)
[n] => 9am - 4pm
[f] => 12
)
)
)
我需要更新 [f] => 12 具有以下功能:
update_post_meta( $_product->id, 'more_info_data', 'f', '100' );
但我似乎无法弄清楚这个功能是如何运作的。
我非常感谢你提前帮助
答案 0 :(得分:1)
根据您的更新我创建的simple function
执行update_post_meta
,根据我的知识,我没有看到使用您的函数更新值的任何选项,如update_post_meta( $_product->id, 'more_info_data', 'f', '100' );
你可以根据自己的意愿在函数update_custom_post_meta_data中创建条件,我不确定是不是确切地知道将条件分成哪个数据是普通的,因此它取决于你。
所以我创建了像
这样的替代功能function update_custom_post_meta_data($id, $meta_name, $array_key, $array_value) {
// Get the data from meta name
$get_meta_data = get_post_meta($id, $meta_name, true);
$new_array = array();
foreach ($get_meta_data as $key => $values) {
if (isset($values[$array_key])) {
$values[$array_key] = $array_value;
}
$new_array[$key] = $values;
}
update_post_meta($id, $meta_name, $new_array);
}
您可以通过将现有功能名称替换为此功能来使用此功能
update_custom_post_meta_data( $_product->id, 'more_info_data', 'f', '100' );
它将适合您的要求。
感谢。