通过WooCommerce中的代码更新订单项

时间:2014-11-14 04:43:00

标签: php wordpress wordpress-plugin woocommerce woothemes

我正在尝试创建一个界面,我可以编辑附加到lineitem的一些元数据。我已经尝试在订单项本身上使用update_post_meta(),但是返回bool(false)。如何手动更新订单项元数据?

谢谢!

1 个答案:

答案 0 :(得分:2)

所以我设法搞清楚了。我写了一个小功能,如下所示。因此,您需要做的就是使用API​​加载订单,解析每个订单项,然后调用wc_update_order_item_meta。唯一的问题是,如果您只想更新特定商品,则需要知道所售商品的变体ID。

function update_order_item_meta($orderID, $variationID, $metaID, $metaValue) {
$order = returnWC_API()->get_order($orderID)->{'order'};
if(!$order) {
    return false;
}
if($variationID == "all") {
    foreach ($order->{'line_items'} as $line_item) {
        if(!wc_update_order_item_meta($line_item->{'id'}, $metaID, $metaValue)) {
            return false;
        }
    }
    return true;
}

foreach ($order->{'line_items'} as $line_item) {
    if($line_item->{'product_id'} == $variationID) {
        return wc_update_order_item_meta($line_item->{'id'}, $metaID, $metaValue);
    }
}

}