I reviewed latest in wc post data. Maybe I’m missing something. I’ll ask my partner if he has any idea.
I rewrote it as well
add_action( 'woocommerce_order_status_failed', 'woocommerce_auto_delete_order' );
function woocommerce_auto_delete_order( $order_id ) {
// 5*60 = 300 seconds. Here 1 minute = 60 seconds.
wp_schedule_single_event(tim() + 60, 'main_delete_event', $order_id);
}
function main_delete_event( $order_id ) {
global $woocommerce;
$order = new WC_Order( $order_id );
$order_status = $order->get_status();
if ( !$order_id )
return false;
if ('failed' == $order_status ) {
wp_delete_post($order_id,true);
return true;
}
return false;
}
I can’t test on local right now. Sorry. Forgot my demo login creds.