PluginProbe ʕ •ᴥ•ʔ
GiveWP – Donation Plugin and Fundraising Platform / 2.1.2
GiveWP – Donation Plugin and Fundraising Platform v2.1.2
4.16.2 4.16.1 4.16.0 4.15.5 4.15.4 4.15.3 4.15.2 4.15.1 4.15.0 2.3.0 2.3.1 2.3.2 2.30.0 2.31.0 2.31.1 2.32.0 2.33.0 2.33.1 2.33.2 2.33.3 2.33.4 2.33.5 2.4.0 2.4.1 2.4.2 2.4.3 2.4.4 2.4.5 2.4.6 2.4.7 2.5.0 2.5.1 2.5.10 2.5.11 2.5.12 2.5.13 2.5.2 2.5.3 2.5.4 2.5.5 2.5.6 2.5.7 2.5.8 2.5.9 2.6.0 2.6.1 2.6.2 2.6.3 2.7.0 2.7.1 2.7.2 2.7.3 2.7.4 2.7.5 2.8.0 2.8.1 2.9.0 2.9.1 2.9.2 2.9.3 2.9.4 2.9.5 2.9.6 2.9.7 3.0.0 3.0.1 3.0.2 3.0.3 3.0.4 3.1.0 3.1.1 3.1.2 3.10.0 3.11.0 3.12.0 3.12.1 3.12.2 3.12.3 3.13.0 3.14.0 3.14.1 3.14.2 3.15.0 3.15.1 3.16.0 3.16.1 3.16.2 3.16.3 3.16.4 3.16.5 3.17.0 3.17.1 3.17.2 3.18.0 3.19.0 3.19.1 3.19.2 3.19.3 3.19.4 3.2.0 3.2.1 3.2.2 3.20.0 3.21.0 3.21.1 3.22.0 3.22.1 3.22.2 3.3.0 3.3.1 3.4.0 3.4.1 3.4.2 3.5.0 3.5.1 3.6.0 3.6.1 3.6.2 3.7.0 3.8.0 3.9.0 4.0.0 4.1.0 4.1.1 4.10.0 4.10.1 4.11.0 4.12.0 4.13.0 4.13.1 4.13.2 4.14.0 4.14.1 4.14.2 4.14.3 4.14.4 4.14.5 4.14.6 4.2.0 4.2.1 4.3.0 4.3.1 4.3.2 4.4.0 4.5.0 4.6.1 4.7.0 4.7.1 4.8.0 4.8.1 4.9.0 trunk 1.9.0 2.0.0 2.0.1 2.0.2 2.0.3 2.0.4 2.0.5 2.0.6 2.0.7 2.1.0 2.1.1 2.1.2 2.1.3 2.1.4 2.1.5 2.1.6 2.1.7 2.1.8 2.10.0 2.10.1 2.10.2 2.10.3 2.10.4 2.11.0 2.11.1 2.11.2 2.11.3 2.12.0 2.12.1 2.12.2 2.12.3 2.13.0 2.13.1 2.13.2 2.13.3 2.13.4 2.14.0 2.15.0 2.16.0 2.16.1 2.17.0 2.17.1 2.17.3 2.18.0 2.18.1 2.19.1 2.19.2 2.19.3 2.19.4 2.19.5 2.19.6 2.19.7 2.19.8 2.2.0 2.2.1 2.2.2 2.2.3 2.2.4 2.2.5 2.2.6 2.20.0 2.20.1 2.20.2 2.21.0 2.21.1 2.21.2 2.21.3 2.21.4 2.22.0 2.22.1 2.22.2 2.22.3 2.23.0 2.23.1 2.23.2 2.24.0 2.24.1 2.24.2 2.25.0 2.25.1 2.25.2 2.25.3 2.26.0 2.27.0 2.27.1 2.27.2 2.27.3 2.28.0 2.29.0 2.29.1 2.29.2
give / includes / class-give-cron.php
give / includes Last commit date
admin 8 years ago api 8 years ago deprecated 8 years ago donors 8 years ago emails 8 years ago forms 8 years ago gateways 8 years ago libraries 8 years ago payments 8 years ago actions.php 8 years ago ajax-functions.php 8 years ago class-give-async-process.php 8 years ago class-give-background-updater.php 8 years ago class-give-cache.php 8 years ago class-give-cli-commands.php 8 years ago class-give-cron.php 8 years ago class-give-db-donor-meta.php 8 years ago class-give-db-donors.php 8 years ago class-give-db-form-meta.php 8 years ago class-give-db-logs-meta.php 8 years ago class-give-db-logs.php 8 years ago class-give-db-meta.php 8 years ago class-give-db-payment-meta.php 8 years ago class-give-db-sequential-ordering.php 8 years ago class-give-db.php 8 years ago class-give-donate-form.php 8 years ago class-give-donor.php 8 years ago class-give-email-access.php 8 years ago class-give-gravatars.php 8 years ago class-give-html-elements.php 8 years ago class-give-license-handler.php 8 years ago class-give-logging.php 8 years ago class-give-roles.php 8 years ago class-give-scripts.php 8 years ago class-give-session.php 8 years ago class-give-stats.php 8 years ago class-give-template-loader.php 8 years ago class-give-tooltips.php 8 years ago class-give-translation.php 8 years ago class-notices.php 8 years ago country-functions.php 8 years ago currency-functions.php 8 years ago error-tracking.php 8 years ago filters.php 8 years ago formatting.php 8 years ago import-functions.php 8 years ago install.php 8 years ago login-register.php 8 years ago misc-functions.php 8 years ago plugin-compatibility.php 8 years ago post-types.php 8 years ago price-functions.php 8 years ago process-donation.php 8 years ago shortcodes.php 8 years ago template-functions.php 8 years ago user-functions.php 8 years ago
class-give-cron.php
198 lines
1 <?php
2 /**
3 * Cron
4 *
5 * @package Give
6 * @subpackage Classes/Give_Cron
7 * @copyright Copyright (c) 2016, WordImpress
8 * @license https://opensource.org/licenses/gpl-license GNU Public License
9 * @since 1.3.2
10 */
11
12 // Exit if accessed directly.
13 if ( ! defined( 'ABSPATH' ) ) {
14 exit;
15 }
16
17
18 /**
19 * Give_Cron Class
20 *
21 * This class handles scheduled events.
22 *
23 * @since 1.3.2
24 */
25 class Give_Cron {
26
27 /**
28 * Instance.
29 *
30 * @since 1.8.13
31 * @access private
32 * @var
33 */
34 private static $instance;
35
36 /**
37 * Singleton pattern.
38 *
39 * @since 1.8.13
40 * @access private
41 */
42 private function __construct() {
43 }
44
45
46 /**
47 * Get instance.
48 *
49 * @since 1.8.13
50 * @access public
51 * @return static
52 */
53 public static function get_instance() {
54 if ( null === static::$instance ) {
55 self::$instance = new static();
56 self::$instance->setup();
57 }
58
59 return self::$instance;
60 }
61
62
63 /**
64 * Setup
65 *
66 * @since 1.8.13
67 */
68 private function setup() {
69 add_filter( 'cron_schedules', array( self::$instance, '__add_schedules' ) );
70 add_action( 'wp', array( self::$instance, '__schedule_events' ) );
71 }
72
73 /**
74 * Registers new cron schedules
75 *
76 * @since 1.3.2
77 * @access public
78 *
79 * @param array $schedules An array of non-default cron schedules.
80 *
81 * @return array An array of non-default cron schedules.
82 */
83 public function __add_schedules( $schedules = array() ) {
84 // Adds once weekly to the existing schedules.
85 $schedules['weekly'] = array(
86 'interval' => 604800,
87 'display' => __( 'Once Weekly', 'give' ),
88 );
89
90 return $schedules;
91 }
92
93 /**
94 * Schedules our events
95 *
96 * @since 1.3.2
97 * @access public
98 *
99 * @return void
100 */
101 public function __schedule_events() {
102 $this->weekly_events();
103 $this->daily_events();
104 }
105
106 /**
107 * Schedule weekly events
108 *
109 * @since 1.3.2
110 * @access private
111 *
112 * @return void
113 */
114 private function weekly_events() {
115 if ( ! wp_next_scheduled( 'give_weekly_scheduled_events' ) ) {
116 wp_schedule_event( current_time( 'timestamp' ), 'weekly', 'give_weekly_scheduled_events' );
117 }
118 }
119
120 /**
121 * Schedule daily events
122 *
123 * @since 1.3.2
124 * @access private
125 *
126 * @return void
127 */
128 private function daily_events() {
129 if ( ! wp_next_scheduled( 'give_daily_scheduled_events' ) ) {
130 wp_schedule_event( current_time( 'timestamp' ), 'daily', 'give_daily_scheduled_events' );
131 }
132 }
133
134 /**
135 * get cron job action name
136 *
137 * @since 1.8.13
138 * @access public
139 *
140 * @param string $type
141 *
142 * @return string
143 */
144 public static function get_cron_action( $type = 'weekly' ) {
145 switch ( $type ) {
146 case 'daily':
147 $cron_action = 'give_daily_scheduled_events';
148 break;
149
150 default:
151 $cron_action = 'give_weekly_scheduled_events';
152 break;
153 }
154
155 return $cron_action;
156 }
157
158 /**
159 * Add action to cron action
160 *
161 * @since 1.8.13
162 * @access private
163 *
164 * @param $action
165 * @param string $type
166 */
167 private static function add_event( $action, $type = 'weekly' ) {
168 $cron_event = self::get_cron_action( $type );
169 add_action( $cron_event, $action );
170 }
171
172 /**
173 * Add weekly event
174 *
175 * @since 1.8.13
176 * @access public
177 *
178 * @param $action
179 */
180 public static function add_weekly_event( $action ) {
181 self::add_event( $action, 'weekly' );
182 }
183
184 /**
185 * Add daily event
186 *
187 * @since 1.8.13
188 * @access public
189 *
190 * @param $action
191 */
192 public static function add_daily_event( $action ) {
193 self::add_event( $action, 'daily' );
194 }
195 }
196
197 // Initiate class.
198 Give_Cron::get_instance();