WooCommerce 管理订单列表中的自定义列不显示数据

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

我需要有关如何在订单栏中显示订单结果的帮助。我在订单列中添加了一个新列,名为“会议点”和“会议日期和时间”。

这是迄今为止我的代码:

add_filter('manage_edit-shop_order_columns', 'add_meeting_points_column');
function add_meeting_points_column($columns) {
    $columns = array_merge(
        array_slice($columns, 0, array_search('order_date', array_keys($columns)), true),
        array('meeting_points' => __('Meeting Points', 'text-domain')),
        array_slice($columns, array_search('order_date', array_keys($columns)), null, true)
    );
    return $columns;
}

add_action('manage_shop_order_posts_custom_column', 'display_meeting_points_column', 20, 2);
function display_Meeting_Points_column($column, $post_id) {
    if ('Meeting_Points' === $column) {
        $order = wc_get_order($post_id);

        if ($order) {
            $meeting_points = wc_get_order_meta_keys($order->get_keys(), 'MeetingPoints', true);
            echo !empty($meeting_points) ? esc_html($meeting_points) : esc_html__('Not Available', 'text-domain');
        }
    }
}

我的代码未按预期工作,它不显示数据。

我做错了什么?我们将不胜感激您的帮助。

php wordpress woocommerce metadata orders
1个回答
0
投票

您的第二个函数中有多个错误,例如列字符串值应该是

'Meeting_Points'
而不是
'meeting_Points'

尝试以下代码替换(确保

MeetingPoints
是正确的元键)

add_filter('manage_edit-shop_order_columns', 'add_meeting_points_column');
function add_meeting_points_column($columns) {
    $columns = array_merge(
        array_slice($columns, 0, array_search('order_date', array_keys($columns)), true),
        array('meeting_points' => __('Meeting Points', 'text-domain')),
        array_slice($columns, array_search('order_date', array_keys($columns)), null, true)
    );
    return $columns;
}

add_action('manage_shop_order_posts_custom_column', 'display_meeting_points_column', 20, 2);
function display_Meeting_Points_column($column, $post_id) {
    if ('meeting_points' === $column) {
        global $the_order;
        
        echo ($value = $the_order->get_meta('MeetingPoints')) ? esc_html($value) : esc_html__('Not Available', 'text-domain');
    }
}

代码位于子主题的functions.php 文件中(或插件中)。已测试并有效。

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