Run a Task Later Helper Function
Adds a wpide_run_later() helper that schedules any hook to run once after a delay, without creating duplicates, so slow work like sending a report or calling an API can leave the page request.
Opens WPIDE on
Code
if ( ! function_exists( 'wpide_run_later' ) ) {
/**
* Schedules $hook to run once after $delay seconds with $args.
* Returns true when scheduled, false if the same task is already queued.
*/
function wpide_run_later( $hook, $delay = 60, $args = array() ) {
$args = array_values( (array) $args );
if ( wp_next_scheduled( $hook, $args ) ) {
return false;
}
return true === wp_schedule_single_event( time() + max( 1, (int) $delay ), $hook, $args, true );
}
}
Notes
Example wpide_run_later( 'my_send_report', 5 * MINUTE_IN_SECONDS, array( $order_id ) ), then add_action( 'my_send_report', ... ) to do the work.
How to add this snippet
- Install WPIDE on your WordPress site (it is free) and open Code Snippets.
- Use snippet above adds it from the library in one click. Or copy the code into a new snippet with the same code type.
- It is added inactive: review the code and settings, then switch it on.