将自定义列添加到 WooCommerce 管理订单列表
在 WooCommerce 中,您可以自定义管理订单列表页面以包含显示相关的其他列有关您订单的信息。
向订单列表添加列
要将自定义列添加到 WooCommerce 中的订单列表,您需要修改模板文件:
/wp-content/plugins/woocommerce/includes/admin/views/html-order-list.php
在manage_shop_order_posts_custom_column函数中,您可以根据$column参数定义自定义列的内容。例如,要添加显示订单权重的列,您可以使用以下代码:
case 'weight': $order = wc_get_order($post_id); $weight = $order->get_weight(); echo $weight . ' kg'; break;
将列添加到特定位置
您可以指定位置通过修改manage_edit-shop_order_columns过滤器来编辑自定义列。此过滤器允许您对现有列重新排序并在特定位置插入自定义列。
例如,要在“操作”列之前插入名为“我的列”的自定义列,您可以使用以下命令代码:
add_filter('manage_edit-shop_order_columns', 'reorder_admin_order_columns'); function reorder_admin_order_columns($columns) { $reordered_columns = array(); foreach ($columns as $key => $column) { $reordered_columns[$key] = $column; if ($key == 'order_status') { $reordered_columns['my-column'] = 'My Column'; } } return $reordered_columns; }
高性能订单存储 (HPOS)
从 WooCommerce 8.2 开始,新安装默认启用高性能订单存储 (HPOS) 。这需要采用稍微不同的方法来添加自定义列:
add_filter('manage_woocommerce_page_wc-orders_columns', 'reorder_admin_order_hpos_columns'); function reorder_admin_order_hpos_columns($columns) { $reordered_columns = array(); foreach ($columns as $key => $column) { $reordered_columns[$key] = $column; if ($key == 'order_status') { $reordered_columns['my-column'] = 'My Column'; } } return $reordered_columns; } add_action('manage_woocommerce_page_wc-orders_custom_column', 'display_admin_order_hpos_column_content', 10, 2); function display_admin_order_hpos_column_content($column, $order) { switch ($column) { case 'my-column': // Get custom order metadata $value = $order->get_meta('_the_meta_key'); if (!empty($value)) { echo $value; } else { echo '<small>(<em>no value</em>)</small>'; } break; } }
这些代码更改允许您将自定义列添加到管理订单列表页面,为您提供管理订单时的更多见解和灵活性。
以上是如何将自定义列添加到我的 WooCommerce 管理订单列表?的详细内容。更多信息请关注PHP中文网其他相关文章!