Add columns to admin orders list in WooCommerce
Updated: 2018-03-30 - added positioning feature to the new columns
So you if you want to add some columns in the orders Admin list page (in backend):
ADDING COLUMNS IN WOOCOMMERCE ADMIN ORDERS LIST
In the example below, we add 2 new custom columns, before existing "Total" and "Actions" columns.
// ADDING 2 NEW COLUMNS WITH THEIR TITLES (keeping "Total" and "Actions" columns at the end)add_filter( 'manage_edit-shop_order_columns', 'custom_shop_order_column', 20 );function custom_shop_order_column($columns){ $reordered_columns = array(); // Inserting columns to a specific location foreach( $columns as $key => $column){ $reordered_columns[$key] = $column; if( $key == 'order_status' ){ // Inserting after "Status" column $reordered_columns['my-column1'] = __( 'Title1','theme_domain'); $reordered_columns['my-column2'] = __( 'Title2','theme_domain'); } } return $reordered_columns;}// Adding custom fields meta data for each new column (example)add_action( 'manage_shop_order_posts_custom_column' , 'custom_orders_list_column_content', 20, 2 );function custom_orders_list_column_content( $column, $post_id ){ switch ( $column ) { case 'my-column1' : // Get custom post meta data $my_var_one = get_post_meta( $post_id, '_the_meta_key1', true ); if(!empty($my_var_one)) echo $my_var_one; // Testing (to be removed) - Empty value case else echo '<small>(<em>no value</em>)</small>'; break; case 'my-column2' : // Get custom post meta data $my_var_two = get_post_meta( $post_id, '_the_meta_key2', true ); if(!empty($my_var_two)) echo $my_var_two; // Testing (to be removed) - Empty value case else echo '<small>(<em>no value</em>)</small>'; break; }}
Code goes in function.php file of your active child theme (or active theme). Tested and works.
Related answer (for products): Add custom columns to admin producs list in WooCommerce backend