Extend admin fields in WooCommerce orders page

Sometimes you need to further extend the Admin Listing. For instance in the current problem i needed to add the serial numbers to the WooCommerce orders listing.

1. edit_shop_order_columns is the function where i am rearranging the fields

2. shop_order_column is the function where i am managing those fields and providing the values respectively.

add_filter( 'manage_edit-shop_order_columns', 'edit_shop_order_columns' ) ;
function edit_shop_order_columns( $columns ) {
 $columns = array(
  'cb' => '<input type="checkbox" />',
  'order_number' => __( 'Order' ),
  'order_date' => __( 'Order Date' ),
  'order_status' => __( 'Status' ),
  'serial' => __( 'Serial Number' ),
  'order_total' => __( 'Order Total'),
 );
 return $columns;
}
add_action( 'manage_shop_order_posts_custom_column', 'shop_order_column', 10, 2);
function shop_order_column( $column, $post_id ) {
 global $post;
 $arr = "";
 if ( 'serial' === $column ) {
  echo get_field('order_serial_number',$post_id);
 }
}
add_filter( 'manage_edit-serialnumber_columns', 'edit_serialnumber_columns' );
function edit_serialnumber_columns( $columns ) {
$columns = array(
 'cb' => '<input type="checkbox" />',
 'title' => __( 'Serial Numner' ),
 'products' => __( 'Linked Products' ),
 'SKU' => __( 'SKU' ),
 'status' => __( 'Status'),
 'date' => __( 'Added Date' )
);
return $columns;
}
add_action( 'manage_serialnumber_posts_custom_column', 'realestate_column', 10, 2);
function realestate_column( $column, $post_id ) {
global $post;
 
 $arr = "";
 if ( 'products' === $column ) {
  $productlist = get_field('products',$post_id);
  foreach($productlist as $row) {
   $arr[] = get_the_title($row);
  }
  echo implode(",",$arr);
 }
 
 $sku = "";
 if ( 'SKU' === $column ) {
  $productlist = get_field('products',$post_id);
  foreach($productlist as $row) {
   $product = wc_get_product( $row );
   echo $row;
   $sku[] = $product->get_sku();
  }
  echo implode(",",$sku);
 }
if ( 'status' === $column ) {
  echo get_field('available',$post_id);
 }
}
See also  Move Order Notes Field on Checkout Page

Leave a Reply