add_filter( 'bulk_actions-edit-shop_order', function( $actions ) {
$actions['csv_download'] = 'Download spreadsheet file';
return $actions;
}, 20 );
add_filter( 'handle_bulk_actions-edit-shop_order',
function( $redirect_to, $action, $post_ids ) {
if( $action !== 'csv_download' ) {
return $redirect_to;
}
$args = [
'csv_download' => 1,
'post_ids' => implode( ',', $post_ids ),
];
return add_query_arg( $args, $redirect_to );
}, 10, 3 );
add_action( 'admin_init', function() {
if( empty( $_REQUEST['csv_download'] ) ) {
return;
}
$header = [
'Date', 'OrderId', 'Customer', 'SKU', 'Product', 'Quantity', 'Price'
];
$data = [ $header ];
$post_ids = explode( ',', $_REQUEST['post_ids'] );
foreach( $post_ids as $order_id ) {
$order = wc_get_order( $order_id );
$order_data = $order->get_data();
$order_items = $order->get_items();
foreach( $order->get_items() as $order_item ) {
$product_sku = '';
$product_id = $order_item->get_product_id();
if( $product_id ) {
$product = wc_get_product( $product_id );
$product_sku = $product->get_sku();
}
$data[] = [
$order->get_date_created()->format( 'm/d/Y' ),
$order_id,
sprintf(
'%s %s',
$order_data['shipping']['first_name'],
$order_data['shipping']['last_name']
),
$product_sku,
$order_item['name'],
$order_item['qty'],
$order_item['line_total'],
];
}
}
// Output
header( 'Content-Type: text/csv; charset=utf-8' );
header( 'Content-Disposition: attachment; filename=orders.csv' );
$out = fopen( 'php://output', 'w' );
foreach( $data as $row ) {
fputcsv( $out, $row );
}
fclose( $out );
exit;
} );
Export bulk selected orders to CSV spreadsheet file
Adds bulk action “Download spreadsheet file” to the WooCommerce administrator orders list view. To use:
- Set your Screen Options > Number of orders per page to 100 or your desired export size.
- Filter the page so it shows most of the orders you want to process (status, etc).
- Click the “select all” checkbox then un-check any orders on the page you don’t want in the export.
- Select the Bulk actions drop-down choosing “Download spreadsheet file” then click Apply.
For more advanced functionality check out the official extension:
WooCommerce Customer / Order / Coupon Export
How to use
- Log into a staging, development, or locally hosted clone of your site
- Install and activate Code Snippets
- WP Admin > Snippets > Add New
- Copy and paste the code from the Description tab above
- Check to ensure formatting came over properly and no syntax errors show up in the editor
- Customize the code as desired
- Add a meaningful title
- Select whether to run on front-end or back-end (or both)
- Click “Save and Activate”
- Test your site to ensure it works
- Disable if any problems, or recover
- Repeat for live environment
License
All code snippets are licensed GPLv2 (or later) matching WordPress licensing.
Disclaimer of warranty:
Except when otherwise stated in writing the copyright holders and/or other parties provide the program as-is without warranty of any kind, either expressed or implied, including, but not limited to, the implied warranties of merchantability and fitness for a particular purpose.
Support
- Describe the issue and what you’ve observed.
- Describe your expected outcome(s).
- List steps to reproduce the issue.
- Optionally provide screen-shot or video URLs.
