我正在尝试制作一个界面,我可以在其中编辑一些附加到 lineitem 的元数据。我已经尝试在订单项本身上使用 update_post_meta(),但是它返回 bool(false)。如何手动更新订单项元数据?
谢谢!
我正在尝试制作一个界面,我可以在其中编辑一些附加到 lineitem 的元数据。我已经尝试在订单项本身上使用 update_post_meta(),但是它返回 bool(false)。如何手动更新订单项元数据?
谢谢!
所以我设法弄清楚了。我在下面写了一个小函数。因此,您需要做的就是使用 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);
}
}
}