tamarazuk
10/3/2014 - 10:08 AM

woocommerce-customer-order-csv-export-add-additional-columns.php

<?php
// add custom column headers
function wc_csv_export_modify_column_headers( $column_headers ) { 
 
	$new_headers = array(
		'column_1' => 'Column 1',
		'column_2' => 'Column 2',
		// add other column headers here in the format column_key => Column Name
	);
 
	return array_merge( $column_headers, $new_headers );
}
add_filter( 'wc_customer_order_csv_export_order_headers', 'wc_csv_export_modify_column_headers' );

// set the data for each for custom columns
function wc_csv_export_modify_row_data( $order_data, $order, $csv_generator ) {
 
	$custom_data = array(
		'column_1' => get_post_meta( $order->id, 'some_meta_key', true ),
		'column_2' => get_post_meta( $order->id, 'some_other_meta_key', true ),
		// add other row data here in the format column_key => data
	);
 
	$new_order_data = array();

	if ( isset( $csv_generator->order_format ) && ( 'default_one_row_per_item' == $csv_generator->order_format || 'legacy_one_row_per_item' == $csv_generator->order_format ) ) {

		foreach ( $order_data as $data ) {
			$new_order_data[] = array_merge( (array) $data, $custom_data );
		}

	} else {

		$new_order_data = array_merge( $order_data, $custom_data );
	}

	return $new_order_data;
}
add_filter( 'wc_customer_order_csv_export_order_row', 'wc_csv_export_modify_row_data', 10, 3 );