Woocommerce删除管理员订单项目元

时间:2014-09-22 15:01:23

标签: woocommerce

我使用woocommerce_add_order_item_meta操作为每个项目添加自定义项元。 我不需要在订单明细中显示这个自定义元,因为它是一个用于打印pdf的arry stringy。

如何删除此元自定义项?有没有采取行动呢?

由于

3 个答案:

答案 0 :(得分:3)

我理解它有点老问题,但我正在回答将来会遇到同样问题的其他用户。

如果您希望订单项元数据不显示在管理订单详细信息页面中,则应在元名称的开头附加下划线(_)。

示例:

_custom_order_meta

答案 1 :(得分:1)

下划线技巧不再适用。在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;
}

答案 2 :(得分:0)

听起来你需要保留它才能打印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 );
}

如果您选择带有前面下划线的$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' );
}