启用高性能订单存储 (HPOS) 时如何在管理订单列表上显示订单项目详细信息,因为经典的遗留方法代码不再适用:
add_action( 'manage_shop_order_posts_custom_column' , 'custom_orders_list_column_content', 20, 2 );
function custom_orders_list_column_content( $column, $post_id ) {
global $the_order, $post;
if ( 'order_status' === $column ) {
$products_names = []; // Initializing
// Loop through order items
foreach ( $the_order->get_items() as $item ) {
$product = $item->get_product(); // Get the WC_Product object
$products_names[] = $item->get_name(); // Store in an array
}
// Display
echo '<ul style="list-style: none;"><li>' . implode('</li><li>', $products_names) . '</li></ul>';
}
}
网上找的各种代码都试过了,只有插件可以用,但是没有以前这个功能那么方便了
要使其在新启用的高性能订单存储(以及旧模式)上工作,请使用以下命令:
add_action('manage_shop_order_posts_custom_column', 'custom_orders_list_column_content', 10, 2);
add_action('manage_woocommerce_page_wc-orders_custom_column', 'custom_orders_list_column_content', 10, 2);
function custom_orders_list_column_content( $column, $order = null ){
if ( 'order_status' === $column ) {
if ( ! is_a($order, 'WC_Order') ) {
global $the_order; $order = $the_order;
}
$products_names = []; // Initializing
// Loop through order items
foreach ( $the_order->get_items() as $item ) {
$product = $item->get_product(); // Get the WC_Product object
$products_names[] = $item->get_name(); // Store in an array
}
// Display
echo '<ul style="list-style: none;"><li>' . implode('</li><li>', $products_names) . '</li></ul>';
}
}
代码位于子主题的functions.php 文件中(或插件中)。已测试并有效。