将列添加到 WooCommerce (+ HPOS) 中的管理订单列表

问题描述 投票:0回答:1

我正在为我的电子商务 WordPress 网站之一使用 WooCommerce 插件。我想在 WooCommerce 管理区域的订单列表页面添加一些列。我无法找到在哪里添加它。

谁能告诉我需要修改哪个模板页面才能满足我的要求?

php wordpress woocommerce backend orders
1个回答
57
投票

更新
2024 年:添加了高性能订单存储 HPOS 的代码 - 参见末尾
2023 年:切换到 CRUD 方法,而不是旧的 WordPress 帖子元函数
2018:在新列中添加定位功能

在 WOOCOMMERCE 管理订单列表中添加列

在下面的示例中,我们在现有的“总计”和“操作”列之前添加 2 个新的自定义列(启用 HPOS 时不起作用)

// ADDING 2 NEW COLUMNS WITH THEIR TITLES (before "Total" and "Actions" columns)
add_filter( 'manage_edit-shop_order_columns', 'add_admin_order_list_custom_column', 20 );
function add_admin_order_list_custom_column($columns)
{
    $reordered_columns = array();
    
    // Inserting columns to a specific location
    foreach( $columns as $key => $column){
        $reordered_columns[$key] = $column;
        if( $key ==  'order_status' ){
            // Inserting after "Status" column
            $reordered_columns['my-column1'] = __( 'Title1','theme_domain');
            $reordered_columns['my-column2'] = __( 'Title2','theme_domain');
        }
    }
    return $reordered_columns;
}

// Adding custom fields meta data for each new column (example)
add_action( 'manage_shop_order_posts_custom_column' , 'display_admin_order_list_custom_column_content', 20, 2 );
function display_admin_order_list_custom_column_content( $column, $post_id )
{
    global $the_order;

    switch ( $column )
    {
        case 'my-column1' :
            // Get custom post meta data
            $value = $the_order->get_meta('_the_meta_key1');
            if ( ! empty($value) ) {
                echo $value;
            }
            // For testing (to be removed) - Empty value case
            else {
                echo '<small>(<em>no value</em>)</small>';
            }
            break;

        case 'my-column2' :
            // Get custom post meta data
            $value = $the_order->get_meta('_the_meta_key2');
            if ( ! empty($value) ) {
                echo $value;
            }
            // For testing (to be removed) - Empty value case
            else {
                echo '<small>(<em>no value</em>)</small>';
            }
            break;
    }
}

代码位于活动子主题(或活动主题)的functions.php 文件中。已测试并工作。


对于高性能订单存储 (HPOS):

从 2023 年 10 月发布的 WooCommerce 8.2 开始,高性能订单存储 (HPOS) 被正式标记为稳定,并将默认为新安装启用。

启用 HPOS 后,要将列添加到 WooCommerce 中的管理订单列表需要使用不同的挂钩。

下面,我们在现有的“总计”和“操作”列之前添加 2 个新的自定义列:

add_filter( 'manage_woocommerce_page_wc-orders_columns', 'add_wc_order_list_custom_column' );
function add_wc_order_list_custom_column( $columns ) {
    $reordered_columns = array();

    // Inserting columns to a specific location
    foreach( $columns as $key => $column){
        $reordered_columns[$key] = $column;

        if( $key ===  'order_status' ){
            // Inserting after "Status" column
            $reordered_columns['my-column1'] = __( 'Title1','theme_domain');
            $reordered_columns['my-column2'] = __( 'Title2','theme_domain');
        }
    }
    return $reordered_columns;
}

add_action('manage_woocommerce_page_wc-orders_custom_column', 'display_wc_order_list_custom_column_content', 10, 2);
function display_wc_order_list_custom_column_content( $column, $order ){
    switch ( $column )
    {
        case 'my-column1' :
            // Get custom post meta data
            $value = $order->get_meta('_the_meta_key1');
            if ( ! empty($value) ) {
                echo $value;
            }
            // For testing (to be removed) - Empty value case
            else {
                echo '<small>(<em>no value</em>)</small>';
            }
            break;

        case 'my-column2' :
            // Get custom post meta data
            $value = $order->get_meta('_the_meta_key2');
            if ( ! empty($value) ) {
                echo $value;
            }
            // For testing (to be removed) - Empty value case
            else {
                echo '<small>(<em>no value</em>)</small>';
            }
            break;
    }
}

代码位于活动子主题(或活动主题)的functions.php 文件中。已测试并工作。


相关答案(针对产品):将自定义列添加到 WooCommerce 3 中的管理产品列表

© www.soinside.com 2019 - 2024. All rights reserved.