Your support helps keep this blog running! Secure payments via Paypal and Stripe.
When managing WooCommerce stores, it’s often helpful to see key order details at a glance — such as the payment method, customer email, billing address, and order date/time, right from the Orders list in the admin dashboard.
Instead of opening each order one by one, you can add these details directly to the Orders table using a custom plugin.
This approach is safer than editing your theme’s functions.php file, and it remains active even if you switch themes.
Table of Contents
Step 1: Create a Simple Custom Plugin
- In your WordPress installation, go to:
/wp-content/plugins/ - Create a new folder named:
woocommerce-custom-order-columns - Inside that folder, create a file named:
woocommerce-custom-order-columns.php - Add the following plugin header at the top of the file:
<?php
/**
* Plugin Name: WooCommerce Custom Order Columns
* Description: Adds Payment Method, Customer Email, Billing Address, and Order Date columns to the Orders admin page.
* Author: Your Name
* Version: 1.0
* License: GPL2
*/
Step 2: Add the Custom Columns Code
Below the header, paste this code:
// Exit if accessed directly.
if ( ! defined( 'ABSPATH' ) ) {
exit;
}
/**
* Add custom columns to WooCommerce Orders list.
*/
add_filter( 'manage_edit-shop_order_columns', 'custom_add_order_columns', 20 );
function custom_add_order_columns( $columns ) {
$new_columns = [];
foreach ( $columns as $key => $column ) {
$new_columns[ $key ] = $column;
if ( 'order_total' === $key ) {
$new_columns['payment_method'] = __( 'Payment Method', 'woocommerce' );
$new_columns['customer_email'] = __( 'Customer Email', 'woocommerce' );
$new_columns['billing_address'] = __( 'Billing Address', 'woocommerce' );
$new_columns['order_created'] = __( 'Order Date & Time', 'woocommerce' );
}
}
return $new_columns;
}
/**
* Display content for each custom column.
*/
add_action( 'manage_shop_order_posts_custom_column', 'custom_show_order_column_content' );
function custom_show_order_column_content( $column ) {
global $post;
$order = wc_get_order( $post->ID );
if ( ! $order ) {
return;
}
switch ( $column ) {
case 'payment_method':
echo esc_html( $order->get_payment_method_title() ?: '—' );
break;
case 'customer_email':
echo esc_html( $order->get_billing_email() ?: '—' );
break;
case 'billing_address':
$address = $order->get_formatted_billing_address();
echo $address ? wp_kses_post( $address ) : '—';
break;
case 'order_created':
$date_created = $order->get_date_created();
echo $date_created
? esc_html( $date_created->date_i18n( 'd M Y, H:i' ) )
: '—';
break;
}
}
Step 3: Activate the Plugin
- Log in to your WordPress admin dashboard.
- Go to Plugins > Installed Plugins.
- Find WooCommerce Custom Order Columns and click Activate.
Once activated, visit WooCommerce > Orders, and you’ll see four new columns:
- Payment Method — Displays the method used (PayPal, Credit card, Bank Transfer, etc.)
- Customer Email — Shows the billing email address
- Billing Address — Displays the formatted billing address
- Order Date & Time — Shows when the order was created
Why Use a Plugin Instead of functions.php?
- Portability: Works even if you switch or update your theme.
- Safety: Keeps your theme code clean and separated from custom features.
- Easy maintenance: You can deactivate or update the plugin independently.
This method follows WordPress best practices and works with HPOS (High-Performance Order Storage) in WooCommerce 8.0+.
Final Thoughts
Adding these columns gives store owners and support teams a clearer, faster overview of order information without clicking into each order. Other columns can be added if you like. It’s a small enhancement that saves time every day, and because it’s built as a plugin, it’s easy to share or reuse across multiple WooCommerce projects.
If you are looking to add the custom fields on the Checkout page, check this page out.
Your support helps keep this blog running! Secure payments via Paypal and Stripe.

