[wp-trac] [WordPress Trac] #35491: Add a function to check whether a hook is scheduled
WordPress Trac
noreply at wordpress.org
Sun Feb 28 01:14:55 UTC 2016
#35491: Add a function to check whether a hook is scheduled
--------------------------------------+-----------------------------
Reporter: dlh | Owner:
Type: enhancement | Status: new
Priority: normal | Milestone: Future Release
Component: Cron API | Version:
Severity: normal | Resolution:
Keywords: has-patch has-unit-tests | Focuses:
--------------------------------------+-----------------------------
Comment (by jrf):
@swissspidy @dlh I've been thinking about the conflict with ticket #34913.
I believe the conflict can quite easily be avoided by adding a new
parameter to the `wp_next_scheduled()` function to indicate whether to
check the arguments or not, like so:
{{{
function wp_next_scheduled( $hook, $args = array(), $ignore_args = false )
}}}
The reasons why I'm suggesting this are as follows:
1. IMHO a clear bug trumps an enhancement.
2. As the bug from #34913 has been in WP since v3.0 without any `doing it
wrong` notices, there is no telling how often devs '''''have''''' been
doing it wrong without realizing. (and yes, I ran into it as cron jobs of
deactivated plugins weren't being unscheduled.)
3. If a `doing it wrong` had been added in WP 3.0 and the scheduling had
been prevented from that point in time with a `return false`, then
@swissspidy suggestion in
[https://core.trac.wordpress.org/ticket/34913#comment:8 #34913:8] would
have been fine. However, 14 WP versions have been released since. Suddenly
starting to `return false` now would break backward compatibility for all
plugins which have been doing it wrong in the mean time and AFAIK breaking
backward compatibility is a big no-no...
4. The current patch in #34913 solves this cleanly without breaking
backward compatibility and with my above suggestion for this patch, both
could be merged without conflict.
The code for checking next scheduled events would become something like
this and would maintain backward compatibility for both patches:
{{{
// Event with specific arguments:
`if ( false === wp_next_scheduled( $hook, $args ) ) {}`
// Event without arguments:
`if ( false === wp_next_scheduled( $hook ) ) {}`
// Any event independently of arguments:
`if ( false === wp_next_scheduled( $hook, null, true ) ) {}`
}}}
--
Ticket URL: <https://core.trac.wordpress.org/ticket/35491#comment:13>
WordPress Trac <https://core.trac.wordpress.org/>
WordPress publishing platform
More information about the wp-trac
mailing list