【问题标题】:How to update a post custom value in wordpress/woocommerce如何在 wordpress/woocommerce 中更新帖子自定义值
【发布时间】:2015-09-18 17:52:45
【问题描述】:

当用户完成订单时,我必须在 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'  );

但我似乎不明白这个功能是如何工作的。

非常感谢您提前提供的帮助

【问题讨论】:

  • 您要更新所有 [f] 数组键的 [f] 值吗?
  • 只有第二个。

标签: php wordpress woocommerce


【解决方案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'  );

它将满足您的要求。

谢谢。

【讨论】:

  • 今晚我要测试它... thaaanks!臀部
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2022-01-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-11-03
  • 1970-01-01
相关资源
最近更新 更多