如何在WooCommerce订单页面添加「公司名称」列?
在WooCommerce订单列表添加公司名称列
要把订单客户模块下的公司名称单独做成一列,你可以通过两个WooCommerce钩子实现,直接把代码加到主题的functions.php文件或者自定义插件里:
1. 添加新列的表头
用manage_edit-shop_order_columns钩子在订单列表表头插入新列:
add_filter( 'manage_edit-shop_order_columns', 'add_company_name_order_column' ); function add_company_name_order_column( $columns ) { // 将新列插入到「Customer」列后方 $new_columns = array(); foreach ( $columns as $key => $value ) { $new_columns[ $key ] = $value; if ( $key === 'customer' ) { $new_columns['company_name'] = '公司名称'; } } return $new_columns; }
2. 填充列的内容
用manage_shop_order_posts_custom_column钩子获取并显示每个订单的公司名称:
add_action( 'manage_shop_order_posts_custom_column', 'display_company_name_order_column_content', 10, 2 ); function display_company_name_order_column_content( $column, $post_id ) { if ( $column === 'company_name' ) { $order = wc_get_order( $post_id ); if ( $order ) { $company_name = $order->get_billing_company(); echo ! empty( $company_name ) ? esc_html( $company_name ) : '无'; } } }
补充说明
- 若想调整新列的位置,修改
foreach循环里的判断条件即可,比如换成$key === 'order_status'就能把列放在状态列后面。 - 订单未填写公司名称时会显示「无」,你可以按需修改这个默认文本。
- 使用
esc_html()转义输出内容,能避免XSS安全风险。
内容的提问来源于stack exchange,提问作者Paul M
相关产品推荐
相关产品推荐

