wp_get_scheduled_event( string $hook, array $args = array(), int|null $timestamp = null )
Retrieves a scheduled event.
Description
Retrieves the full event object for a given event, if no timestamp is specified the next scheduled event is returned.
Parameters
- $hook
-
(Required) Action hook of the event.
- $args
-
(Optional) Array containing each separate argument to pass to the hook's callback function.<br> Although not passed to a callback, these arguments are used to uniquely identify the event, so they should be the same as those used when originally scheduling the event.<br>
Default value: array()
- $timestamp
-
(Optional) Unix timestamp (UTC) of the event. If not specified, the next scheduled event is returned.
Default value: null
Return
(object|false) The event object. False if the event does not exist.<br>
- 'hook'
(string) Action hook to execute when the event is run.<br> - 'timestamp'
(int) Unix timestamp (UTC) for when to next run the event.<br> - 'schedule'
(string|false) How often the event should subsequently recur.<br> - 'args'
(array) Array containing each separate argument to pass to the hook's callback function.<br> - 'interval'
(int) Optional. The interval time in seconds for the schedule. Only present for recurring events.<br>
Source
File: wp-includes/cron.php
function wp_get_scheduled_event( $hook, $args = array(), $timestamp = null ) {
/**
* Filter to preflight or hijack retrieving a scheduled event.
*
* Returning a non-null value will short-circuit the normal process,
* returning the filtered value instead.
*
* Return false if the event does not exist, otherwise an event object
* should be returned.
*
* @since 5.1.0
*
* @param null|false|object $pre Value to return instead. Default null to continue retrieving the event.
* @param string $hook Action hook of the event.
* @param array $args Array containing each separate argument to pass to the hook's callback function.
* Although not passed to a callback, these arguments are used to uniquely identify
* the event.
* @param int|null $timestamp Unix timestamp (UTC) of the event. Null to retrieve next scheduled event.
*/
$pre = apply_filters( 'pre_get_scheduled_event', null, $hook, $args, $timestamp );
if ( null !== $pre ) {
return $pre;
}
if ( null !== $timestamp && ! is_numeric( $timestamp ) ) {
return false;
}
$crons = _get_cron_array();
if ( empty( $crons ) ) {
return false;
}
$key = md5( serialize( $args ) );
if ( ! $timestamp ) {
// Get next event.
$next = false;
foreach ( $crons as $timestamp => $cron ) {
if ( isset( $cron[ $hook ][ $key ] ) ) {
$next = $timestamp;
break;
}
}
if ( ! $next ) {
return false;
}
$timestamp = $next;
} elseif ( ! isset( $crons[ $timestamp ][ $hook ][ $key ] ) ) {
return false;
}
$event = (object) array(
'hook' => $hook,
'timestamp' => $timestamp,
'schedule' => $crons[ $timestamp ][ $hook ][ $key ]['schedule'],
'args' => $args,
);
if ( isset( $crons[ $timestamp ][ $hook ][ $key ]['interval'] ) ) {
$event->interval = $crons[ $timestamp ][ $hook ][ $key ]['interval'];
}
return $event;
}
Changelog
Version | Description |
---|---|
5.1.0 | Introduced. |