即時通過woocommerce_add_order_item_meta操作爲每個項目添加自定義項目元。 我不需要在訂單明細中顯示這個自定義元,因爲它是一個麻煩的粘性,即時通訊使用打印PDF。Woocommerce刪除管理命令項目項目meta
我該如何刪除這個元定製項目?有沒有一些行動來做到這一點?
謝謝
即時通過woocommerce_add_order_item_meta操作爲每個項目添加自定義項目元。 我不需要在訂單明細中顯示這個自定義元,因爲它是一個麻煩的粘性,即時通訊使用打印PDF。Woocommerce刪除管理命令項目項目meta
我該如何刪除這個元定製項目?有沒有一些行動來做到這一點?
謝謝
這聽起來像你需要保留它才能打印PDF。如果忽略order-details.php
模板,你都不可能改變:
$item_meta = new WC_Order_Item_Meta($item['item_meta'], $_product);
到
$array = $item['item_meta'];
if(isset($array['your_pdf_array_key'])){ unset($array['your_pdf_array_key']); }
$item_meta = new WC_Order_Item_Meta($array, $_product);
編輯
的wc_add_order_item_meta()
函數如圖4箇中的代碼參數:
function wc_add_order_item_meta($item_id, $meta_key, $meta_value, $unique = false) {
return add_metadata('order_item', $item_id, $meta_key, $meta_value, $unique);
}
如果y ou選擇帶有前面下劃線的$meta_key
,元數據將在結帳/訂單接收頁面,我的訂單的我的賬戶區域列表以及管理員的訂單概覽頁面中自動隱藏。
因此,我建議讓您的woocommerce_add_order_item_meta
回調函數看起來像下面這樣:
add_action('woocommerce_add_order_item_meta', '25979024_add_order_item_meta', 10, 3);
function 25979024_add_order_item_meta($order_item_id, $cart_item, $cart_item_key) {
wc_add_order_item_meta($order_item_id, '_pdf_something', 'hide this stuff');
}
我理解它有點老問題,但我回答了誰都會有同樣的問題,在將來的某個其他用戶。
如果您希望您的訂單商品元不顯示在管理訂單詳情頁面中,則應在meta名稱的開頭添加下劃線(_)。
例子:
_custom_order_meta
下劃線伎倆不再起作用。在Woo 3.x中有隱藏的元組陣列:
add_filter('woocommerce_hidden_order_itemmeta',
array($this, 'hidden_order_itemmeta'), 50);
function hidden_order_itemmeta($args) {
$args[] = 'my_hidden_meta';
return $args;
}