wpseek.com
A WordPress-centric search engine for devs and theme authors
wp_unschedule_hook › WordPress Function
Since4.9.0
Deprecatedn/a
› wp_unschedule_hook ( $hook )
Parameters: |
|
Returns: |
|
Defined at: |
|
Codex: | |
Change Log: |
|
Unschedules all events attached to the hook.
Can be useful for plugins when deactivating to clean up the cron queue. Warning: This function may return Boolean FALSE, but may also return a non-Boolean value which evaluates to FALSE. For information about casting to booleans see the {@link PHP documentation}. Use the===
operator for testing the return value of this function.Related Functions: wp_clear_scheduled_hook, wp_unschedule_event, wp_next_scheduled, wp_schedule_event, wp_get_schedule
Source
function wp_unschedule_hook( $hook ) { /** * Filter to preflight or hijack clearing all events attached to the hook. * * Returning a non-null value will short-circuit the normal unscheduling * process, causing the function to return the filtered value instead. * * For plugins replacing wp-cron, return the number of events successfully * unscheduled (zero if no events were registered with the hook) or false * if unscheduling one or more events fails. * * @since 5.1.0 * * @param null|int|false $pre Value to return instead. Default null to continue unscheduling the hook. * @param string $hook Action hook, the execution of which will be unscheduled. */ $pre = apply_filters( 'pre_unschedule_hook', null, $hook ); if ( null !== $pre ) { return $pre; } $crons = _get_cron_array(); if ( empty( $crons ) ) { return 0; } $results = array(); foreach ( $crons as $timestamp => $args ) { if ( ! empty( $crons[ $timestamp ][ $hook ] ) ) { $results[] = count( $crons[ $timestamp ][ $hook ] ); } unset( $crons[ $timestamp ][ $hook ] ); if ( empty( $crons[ $timestamp ] ) ) { unset( $crons[ $timestamp ] ); } } /* * If the results are empty (zero events to unschedule), no attempt * to update the cron array is required. */ if ( empty( $results ) ) { return 0; } if ( _set_cron_array( $crons ) ) { return array_sum( $results ); } return false; }