Add order date and order number columns to my account in WooCommerce

Add order date and order number columns to my account in WooCommerce on your child site.

Snippet Type

Execute on Child Sites

Snippet

// Add order number and order date creation as order meta data
add_action( 'woocommerce_checkout_create_order', 'add_some_order_meta_data', 10, 2 );
function add_some_order_meta_data( $order, $data ) {
    $order->update_meta_data( '_order_number', $order->get_id() );
    $order->update_meta_data( 'order_date', $order->get_date_created()->date('Y-m-d H:i:s') );
}

// Add order Id as custom order item meta data
add_action( 'woocommerce_checkout_create_order_line_item', 'add_meta_to_line_item', 10, 4 );
function add_meta_to_line_item( $item, $cart_item_key, $values, $order )
{
    $item->add_meta_data( '_order_id', $order->get_id() );
}

// Include order number meta data for the method get_order_number()
add_filter( 'woocommerce_order_number', 'wc_set_order_number', 10, 2 );
function wc_set_order_number( $order_id, $order ) {
    // Get the order number (custom meta data)
    $order_number = $order->get_meta('_order_number');

    return $order_number ? $order_number : $order_id;
}

// Add columns to my account orders
add_filter( 'woocommerce_my_account_my_orders_columns', 'add_my_account_orders_columns' );
function add_my_account_orders_columns( $columns ) {
    $new_columns = array();

    foreach ( $columns as $key => $name ) {

        $new_columns[ $key ] = $name;

        // add meta_value after order status column
        if ( 'order-status' === $key ) {
            $new_columns['number'] = __( 'Order Number', 'textdomain' );
            $new_columns['date-created'] = __( 'Date Created', 'textdomain' );
        }
    }

    return $new_columns;
}

// Column order number content
add_action( 'woocommerce_my_account_my_orders_column_number', 'my_account_order_number_column_content', 10, 1 );
function my_account_order_number_column_content( $order ) {
    echo $order->get_order_number();
}

// Column order date created content
add_action( 'woocommerce_my_account_my_orders_column_date-created', 'my_account_order_date_created_column_content', 10, 1 );
function my_account_order_date_created_column_content( $order ) {
    echo $order->get_meta('order_date');
}

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.