PluginProbe ʕ •ᴥ•ʔ
Post Views Counter / 1.0.3
Post Views Counter v1.0.3
1.7.13 1.7.12 1.7.11 trunk 1.0.0 1.0.1 1.0.10 1.0.11 1.0.12 1.0.2 1.0.3 1.0.4 1.0.5 1.0.6 1.0.7 1.0.8 1.0.9 1.1.0 1.1.1 1.1.2 1.1.3 1.1.4 1.2.0 1.2.1 1.2.10 1.2.11 1.2.12 1.2.13 1.2.14 1.2.2 1.2.3 1.2.4 1.2.5 1.2.6 1.2.7 1.2.8 1.2.9 1.3 1.3.1 1.3.10 1.3.11 1.3.12 1.3.13 1.3.2 1.3.2.1 1.3.3 1.3.4 1.3.5 1.3.6 1.3.7 1.3.8 1.3.9 1.4 1.4.1 1.4.2 1.4.3 1.4.4 1.4.5 1.4.6 1.4.7 1.4.8 1.5.0 1.5.1 1.5.2 1.5.3 1.5.4 1.5.5 1.5.6 1.5.7 1.5.8 1.5.9 1.6.0 1.6.1 1.7.0 1.7.1 1.7.10 1.7.2 1.7.3 1.7.4 1.7.5 1.7.6 1.7.7 1.7.8 1.7.9
post-views-counter / includes / cron.php
post-views-counter / includes Last commit date
columns.php 12 years ago counter.php 12 years ago cron.php 12 years ago frontend.php 11 years ago functions.php 12 years ago query.php 12 years ago settings.php 12 years ago update.php 12 years ago widgets.php 12 years ago
cron.php
87 lines
1 <?php
2 if(!defined('ABSPATH')) exit;
3
4 new Post_Views_Counter_Cron();
5
6 class Post_Views_Counter_Cron
7 {
8 public function __construct()
9 {
10 // sets instance
11 Post_Views_Counter()->add_instance('cron', $this);
12
13 // actions
14 add_action('init', array(&$this, 'check_cron'));
15 add_action('pvc_reset_counts', array(&$this, 'reset_counts'));
16
17 // filters
18 add_filter('cron_schedules', array(&$this, 'cron_time_intervals'));
19 }
20
21
22 /**
23 * Resets daily counts
24 */
25 public function reset_counts()
26 {
27 global $wpdb;
28
29 $wpdb->query('DELETE FROM '.$wpdb->prefix.'post_views WHERE type = 0');
30 }
31
32
33 /**
34 * Adds new cron interval from settings
35 */
36 public function cron_time_intervals($schedules)
37 {
38 $schedules['post_views_counter_interval'] = array(
39 'interval' => Post_Views_Counter()->get_instance('counter')->get_timestamp(Post_Views_Counter()->get_attribute('options', 'general', 'reset_counts', 'type'), Post_Views_Counter()->get_attribute('options', 'general', 'reset_counts', 'number'), false),
40 'display' => __('Post Views Counter reset daily counts interval', 'post-views-counter')
41 );
42
43 return $schedules;
44 }
45
46
47 /**
48 * Checks whether WP Cron needs to add new task
49 */
50 public function check_cron()
51 {
52 if(!is_admin())
53 return;
54
55 // sets wp cron task
56 if(Post_Views_Counter()->get_attribute('options', 'general', 'cron_run'))
57 {
58 // not set or need to be updated?
59 if(!wp_next_scheduled('pvc_reset_counts') || Post_Views_Counter()->get_attribute('options', 'general', 'cron_update'))
60 {
61 // task is added but need to be updated
62 if(Post_Views_Counter()->get_attribute('options', 'general', 'cron_update'))
63 {
64 // removes old schedule
65 wp_clear_scheduled_hook('pvc_reset_counts');
66
67 // sets update to false
68 $general = Post_Views_Counter()->get_attribute('options', 'general');
69 $general['cron_update'] = false;
70
71 // updates settings
72 update_option('post_views_counter_settings_general', $general);
73 }
74
75 // sets schedule
76 wp_schedule_event(Post_Views_Counter()->get_instance('counter')->get_timestamp(Post_Views_Counter()->get_attribute('options', 'general', 'reset_counts', 'type'), Post_Views_Counter()->get_attribute('options', 'general', 'reset_counts', 'number')), 'post_views_counter_interval', 'pvc_reset_counts');
77 }
78 }
79 else
80 {
81 // removes schedule
82 wp_clear_scheduled_hook('pvc_reset_counts');
83 remove_action('pvc_reset_counts', array(&$this, 'reset_counts'));
84 }
85 }
86 }
87 ?>