add_action( 'admin_notices', function() {
// Selection Criteria
$args = [
'billing_first_name' => 'John',
'billing_email' => '[email protected]',
'billing_last_name' => 'Smith',
'limit' => 500,
'status' => [ 'wc-failed', 'wc-cancelled' ],
];
// Query Orders
$orders = wc_get_orders( $args );
// Print Size Or Bail
if( is_countable( $orders ) ) {
printf( '<p>Batch size %d orders:</p>', sizeof( $orders ) );
} else {
echo wpautop( 'No orders found' );
return;
}
// Loop Them
foreach( $orders as $order ) {
// Print Order Numbers
echo $order->get_id() . ' ';
// Trash Them
$order->delete();
}
} );
Find and trash specific orders
Locate and trash all orders matching a specific status and name or email address in batches of 500. Very useful after a credit card guessing attack has left unauthorized/uncharged orders behind. Then manually empty the trash and if times out, return and repeat until clean. Most servers can empty around 500 orders at a time before timeouts are reached, but this varies by site.
Consider our free Woo Prune Orders plugin for trashing orders by status and date limit.
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.
- Email to [email protected]
