如何将自定义列添加到我的 WooCommerce 管理订单列表?

Susan Sarandon
发布: 2024-11-21 01:59:13
原创
721 人浏览过

How Can I Add Custom Columns to My WooCommerce Admin Order List?

将自定义列添加到 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中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板