首頁 >後端開發 >php教程 >如何將自訂列新增至我的 WooCommerce 管理訂單清單?

如何將自訂列新增至我的 WooCommerce 管理訂單清單?

Susan Sarandon
Susan Sarandon原創
2024-11-21 01:59:13754瀏覽

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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn