请求在WooCommerce我的账户订单详情订单项表添加自定义列
嘿,这事儿不难搞定!我帮你整理了一套代码,直接就能在WooCommerce「我的账户>订单>查看订单」页面的订单项表格里添上自定义列,步骤如下:
实现步骤
1. 添加自定义列标题
先用woocommerce_order_item_table_columns钩子往订单项表格里插入新列,你可以自由调整列的位置(示例里是放在「产品」列之后):
// 添加自定义列到订单详情的订单项表格 add_filter( 'woocommerce_order_item_table_columns', 'add_custom_order_item_column' ); function add_custom_order_item_column( $columns ) { $new_columns = array(); foreach ( $columns as $key => $label ) { $new_columns[ $key ] = $label; // 把自定义列插到「产品」列后面,你可以改成其他键调整位置 if ( 'product' === $key ) { $new_columns['custom_column'] = '自定义列标题'; // 替换成你想要的列名 } } return $new_columns; }
2. 填充自定义列内容
接着用woocommerce_order_item_table_column_{column_key}钩子给新列填充内容,这里提供两种常见场景的示例,按需选用即可:
// 填充自定义列的内容 add_action( 'woocommerce_order_item_table_column_custom_column', 'fill_custom_order_item_column_content', 10, 2 ); function fill_custom_order_item_column_content( $item_id, $item ) { // 示例1:获取对应产品的自定义字段值 $product = $item->get_product(); $custom_value = $product->get_meta( 'your_custom_field_key' ); // 替换成你的产品自定义字段键 // 示例2:获取订单项的专属元数据(比如下单时添加的自定义信息) // $custom_value = wc_get_order_item_meta( $item_id, 'your_item_meta_key', true ); // 有值就显示,没值显示短横线 echo $custom_value ? esc_html( $custom_value ) : '-'; }
3. 调整表格样式(可选)
为了让新列和原有表格样式更协调,你可以加一点CSS调整宽度和对齐方式:
// 仅在查看订单页面加载自定义样式 add_action( 'wp_enqueue_scripts', 'enqueue_custom_order_item_column_style' ); function enqueue_custom_order_item_column_style() { if ( is_wc_endpoint_url( 'view-order' ) ) { wp_add_inline_style( 'woocommerce-general', ' .woocommerce-table--order-details .woocommerce-table__column--custom_column { width: 15%; /* 按需调整宽度 */ text-align: center; } ' ); } }
使用说明
把上面的PHP代码复制到你的WordPress主题的functions.php文件里,或者放到自定义插件中即可生效。记得替换代码里的自定义列标题、自定义字段键这些占位内容哦!
内容的提问来源于stack exchange,提问作者iqbal malik
相关产品推荐
相关产品推荐

