gpt4 book ai didi

php - WooCommerce:将自定义元添加为隐藏的订单项元以供内部使用

转载 作者:行者123 更新时间:2023-12-05 01:12:13 26 4
gpt4 key购买 nike

我想向 WooCommerce 中的订单项添加一些元数据。这些元字段仅供内部使用,不应可见。

我们在产品中有一些额外的字段,例如额外费用。我想在导出订单后使用该费用。

我在这里找到了一个很好的答案:https://stackoverflow.com/a/41988701/1788961

add_action('woocommerce_checkout_create_order_line_item', 'add_custom_hiden_order_item_meta_data', 20, 4 );
function add_custom_hiden_order_item_meta_data( $item, $cart_item_key, $values, $order ) {

// Set user meta custom field as order item meta
if( $meta_value = get_user_meta( $order->get_user_id(), 'billing_enumber', true ) )
$item->update_meta_data( 'pa_billing-e-number', $meta_value );
}

但在此示例中,元字段中的内容将出现在客户的订单详细信息中。

有没有办法让这些字段只在后端可见并且可用于内部功能?

最佳答案

已更新

将任何元值设置为仅在管理订单编辑页面上可见的隐藏订单项元数据的简单方法是在元键的开头添加下划线,例如:

add_action('woocommerce_checkout_create_order_line_item', 'add_custom_hiden_order_item_meta_data', 20, 4 );
function add_custom_hiden_order_item_meta_data( $item, $cart_item_key, $values, $order ) {

// Set user 'billing_enumber' custom field as admin order item meta (hidden from customer)
if( $meta_value = get_user_meta( $order->get_user_id(), 'billing_enumber', true ) )
$item->update_meta_data( '_billing_enumber', $meta_value );
}

然后要在管理员订单项上为该元键设置一个干净的标签名称,您可以使用:

add_filter('woocommerce_order_item_display_meta_key', 'filter_wc_order_item_display_meta_key', 20, 3 );
function filter_wc_order_item_display_meta_key( $display_key, $meta, $item ) {

// Set user meta custom field as order item meta
if( $meta->key === '_billing_enumber' && is_admin() )
$display_key = __("Billing E Number", "woocommerce" );

return $display_key;
}

此代码位于您的事件子主题(或主题)的 function.php 文件中。经过测试并且可以工作。

enter image description here

关于php - WooCommerce:将自定义元添加为隐藏的订单项元以供内部使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62364016/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com