109
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1 |
<?php |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2 |
/** |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
3 |
* WordPress Cron Implementation for hosts, which do not offer CRON or for which |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
4 |
* the user has not setup a CRON job pointing to this file. |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
5 |
* |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
6 |
* The HTTP request to this file will not slow down the visitor who happens to |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
7 |
* visit when the cron job is needed to run. |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
8 |
* |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
9 |
* @package WordPress |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
10 |
*/ |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
11 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
12 |
ignore_user_abort(true); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
13 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
14 |
if ( !empty($_POST) || defined('DOING_AJAX') || defined('DOING_CRON') ) |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
15 |
die(); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
16 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
17 |
/** |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
18 |
* Tell WordPress we are doing the CRON task. |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
19 |
* |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
20 |
* @var bool |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
21 |
*/ |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
22 |
define('DOING_CRON', true); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
23 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
24 |
if ( !defined('ABSPATH') ) { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
25 |
/** Setup WordPress environment */ |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
26 |
require_once('./wp-load.php'); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
27 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
28 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
29 |
if ( false === $crons = _get_cron_array() ) |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
30 |
die(); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
31 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
32 |
$keys = array_keys( $crons ); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
33 |
$local_time = time(); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
34 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
35 |
if ( isset($keys[0]) && $keys[0] > $local_time ) |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
36 |
die(); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
37 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
38 |
foreach ($crons as $timestamp => $cronhooks) { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
39 |
if ( $timestamp > $local_time ) |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
40 |
break; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
41 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
42 |
foreach ($cronhooks as $hook => $keys) { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
43 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
44 |
foreach ($keys as $k => $v) { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
45 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
46 |
$schedule = $v['schedule']; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
47 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
48 |
if ($schedule != false) { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
49 |
$new_args = array($timestamp, $schedule, $hook, $v['args']); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
50 |
call_user_func_array('wp_reschedule_event', $new_args); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
51 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
52 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
53 |
wp_unschedule_event($timestamp, $hook, $v['args']); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
54 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
55 |
do_action_ref_array($hook, $v['args']); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
56 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
57 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
58 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
59 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
60 |
die(); |