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

Susan Sarandon
Release: 2024-11-21 01:59:13
Original
720 people have browsed it

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

Add Custom Columns to WooCommerce Admin Order List

In WooCommerce, you can customize the admin order listing page to include additional columns that display relevant information about your orders.

Adding Columns to Order List

To add custom columns to the order list in WooCommerce, you'll need to modify the template file:

/wp-content/plugins/woocommerce/includes/admin/views/html-order-list.php
Copy after login

Inside the manage_shop_order_posts_custom_column function, you can define the content of your custom columns based on the $column parameter. For example, to add a column displaying the order weight, you could use the following code:

case 'weight':
    $order = wc_get_order($post_id);
    $weight = $order->get_weight();
    echo $weight . ' kg';
    break;
Copy after login

Adding Columns to Specific Location

You can specify the position of your custom columns by modifying the manage_edit-shop_order_columns filter. This filter allows you to reorder the existing columns and insert your custom columns in a specific location.

For example, to insert a custom column named "My Column" before the "Actions" column, you would use the following code:

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;
}
Copy after login

High-Performance Order Storage (HPOS)

From WooCommerce 8.2, High-Performance Order Storage (HPOS) is enabled by default for new installations. This requires a slightly different approach to adding custom columns:

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;
    }
}
Copy after login

These code changes allow you to add custom columns to the admin order listing page, providing you with additional insights and flexibility in managing your orders.

The above is the detailed content of How Can I Add Custom Columns to My WooCommerce Admin Order List?. For more information, please follow other related articles on the PHP Chinese website!

source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Latest Articles by Author
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template