PluginProbe ʕ •ᴥ•ʔ
Post Views Counter / 1.0.7
Post Views Counter v1.0.7
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 11 years ago counter.php 11 years ago cron.php 11 years ago frontend.php 11 years ago functions.php 11 years ago query.php 11 years ago settings.php 11 years ago update.php 11 years ago widgets.php 11 years ago
cron.php
99 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 // set instance
10 Post_Views_Counter()->add_instance('cron', $this);
11
12 // actions
13 add_action('init', array(&$this, 'check_cron'));
14 add_action('pvc_reset_counts', array(&$this, 'reset_counts'));
15 add_action('pvc_flush_cached_counts', array(&$this, 'flush_cached_counts'));
16
17 // filters
18 add_filter('cron_schedules', array(&$this, 'cron_time_intervals'));
19 }
20
21
22 /**
23 * Reset daily counts
24 */
25 public function reset_counts() {
26 global $wpdb;
27
28 $wpdb->query('DELETE FROM '.$wpdb->prefix.'post_views WHERE type = 0');
29 }
30
31
32 /**
33 * Call Post_Views_Counter_Counter::flush_cache_to_db()
34 * This is (un)scheduled on plugin activation/deactivation
35 */
36 public function flush_cached_counts() {
37 $counter = Post_Views_Counter()->get_instance('counter');
38
39 if ( $counter && $counter->using_object_cache() ) {
40 $counter->flush_cache_to_db();
41 }
42 }
43
44
45 /**
46 * Add new cron interval from settings
47 */
48 public function cron_time_intervals($schedules) {
49 $schedules['post_views_counter_interval'] = array(
50 '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),
51 'display' => __('Post Views Counter reset daily counts interval', 'post-views-counter')
52 );
53
54 $schedules['post_views_counter_flush_interval'] = array(
55 'interval' => Post_Views_Counter()->get_instance('counter')->get_timestamp(Post_Views_Counter()->get_attribute('options', 'general', 'flush_interval', 'type'), Post_Views_Counter()->get_attribute('options', 'general', 'flush_interval', 'number'), false),
56 'display' => __('Post Views Counter cache flush interval', 'post-views-counter')
57 );
58
59 return $schedules;
60 }
61
62
63 /**
64 * Check whether WP Cron needs to add new task
65 */
66 public function check_cron() {
67 if (!is_admin())
68 return;
69
70 // sets wp cron task
71 if (Post_Views_Counter()->get_attribute('options', 'general', 'cron_run')) {
72
73 // not set or need to be updated?
74 if (!wp_next_scheduled('pvc_reset_counts') || Post_Views_Counter()->get_attribute('options', 'general', 'cron_update')) {
75
76 // task is added but need to be updated
77 if (Post_Views_Counter()->get_attribute('options', 'general', 'cron_update')) {
78 // remove old schedule
79 wp_clear_scheduled_hook('pvc_reset_counts');
80
81 // set update to false
82 $general = Post_Views_Counter()->get_attribute('options', 'general');
83 $general['cron_update'] = false;
84
85 // update settings
86 update_option('post_views_counter_settings_general', $general);
87 }
88
89 // set schedule
90 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');
91 }
92 } else {
93 // remove schedule
94 wp_clear_scheduled_hook('pvc_reset_counts');
95 remove_action('pvc_reset_counts', array(&$this, 'reset_counts'));
96 }
97 }
98 }
99 ?>