You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在WooCommerce后台隐藏订单项的line_cost和line_tax列名?

WooCommerce后台隐藏订单项line_cost和line_tax列名的解决方案

原代码问题分析

你提供的代码未生效,核心问题有两个:

  1. 钩子注册的函数名不匹配:add_action中指定的函数名是admin_head_shop_order_inline_Cust,但实际定义的函数名是admin_head_shop_order_inline_css_S,导致钩子无法触发。
  2. CSS选择器仅针对列内容,未覆盖表头(列名)部分,所以列名依然显示。

解决方案

以下提供两种可行方法,推荐使用方法二(通过WooCommerce原生钩子实现,更稳定):

方法一:修正CSS代码

修正函数名匹配问题,并调整选择器同时隐藏表头和列内容:

add_action( 'admin_head', 'admin_head_shop_order_inline_css' );

function admin_head_shop_order_inline_css() {
    global $pagenow, $typenow;

    // 定位WooCommerce后台单个订单页面
    if ( in_array( $pagenow, ['post.php', 'post-new.php'] ) && $typenow === 'shop_order' ) :
?><style>
/* 隐藏line_cost列的表头和内容 */
table.woocommerce_order_items th.item_cost,
table.woocommerce_order_items td.item_cost {
    display: none !important;
}
/* 隐藏line_tax列的表头和内容 */
table.woocommerce_order_items th.item_tax,
table.woocommerce_order_items td.item_tax {
    display: none !important;
}
</style><?php
    endif;
}

方法二:使用WooCommerce原生钩子(推荐)

通过woocommerce_admin_order_items_columns钩子直接移除指定列,无需依赖CSS,兼容性更好:

add_filter( 'woocommerce_admin_order_items_columns', 'remove_order_item_cost_tax_columns' );

function remove_order_item_cost_tax_columns( $columns ) {
    // 移除line_cost对应的列(键为item_cost)
    if ( isset( $columns['item_cost'] ) ) {
        unset( $columns['item_cost'] );
    }
    // 移除line_tax对应的列(键为item_tax)
    if ( isset( $columns['item_tax'] ) ) {
        unset( $columns['item_tax'] );
    }
    return $columns;
}

将上述任意一段代码添加到主题functions.php文件或自定义插件中,即可实现隐藏指定列名及对应内容的效果。

内容的提问来源于stack exchange,提问作者Victor Daniel Witoszek

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.07 17:05:06