在WooCommerce中将订单商品元键改为可读显示名称
修改WooCommerce后台订单页面元数据显示名称的方案
不用修改存储的字段值,直接通过添加代码片段就能实现,具体如下:
为什么修改order-details.php没用?
你找到的order-details.php是前端用户查看订单详情的模板文件,而你要修改的是后台管理员端的订单页面,这两个是完全独立的显示逻辑,所以改那里对后台没有影响。
解决方案:使用WooCommerce过滤器
WooCommerce提供了专门的过滤器来修改订单元数据的显示名称,不需要改动存储的字段,历史订单也能正常显示新名称。
情况1:元数据属于订单项(比如商品的自定义属性)
将以下代码添加到你的主题(或子主题)的functions.php文件中,或者自定义插件里:
add_filter( 'woocommerce_order_item_display_meta_key', 'custom_order_item_meta_label', 10, 3 ); function custom_order_item_meta_label( $display_key, $meta, $item ) { // 替换指定元数据的显示名称 if ( '_user_handle_rebate' === $meta->key ) { $display_key = 'Handle Rebate'; } // 如需修改其他字段,可继续添加判断 // 示例: // if ( '_user_width' === $meta->key ) { // $display_key = 'Width'; // } return $display_key; }
情况2:元数据属于订单本身(不是某个商品的属性)
如果你的_user_handle_rebate是订单层面的元数据,改用这个过滤器:
add_filter( 'woocommerce_order_display_meta_key', 'custom_order_meta_label', 10, 2 ); function custom_order_meta_label( $display_key, $meta ) { if ( '_user_handle_rebate' === $meta->key ) { $display_key = 'Handle Rebate'; } return $display_key; }
注意事项
- 优先使用子主题的
functions.php或自定义插件,避免主题更新导致代码丢失; - 不要直接修改WooCommerce核心文件,否则更新插件后修改会被覆盖。
内容的提问来源于stack exchange,提问作者Zach
相关产品推荐
相关产品推荐

