PluginProbe ʕ •ᴥ•ʔ
GiveWP – Donation Plugin and Fundraising Platform / 3.19.4
GiveWP – Donation Plugin and Fundraising Platform v3.19.4
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 1 year ago api 3 years ago database 2 years ago deprecated 3 years ago donors 1 year ago emails 3 years ago forms 1 year ago frontend 6 years ago gateways 1 year ago libraries 2 years ago payments 1 year ago actions.php 5 years ago ajax-functions.php 2 years ago class-give-async-process.php 1 year ago class-give-background-updater.php 2 years ago class-give-cache-setting.php 2 years ago class-give-cache.php 3 years ago class-give-cli-commands.php 3 years ago class-give-comment.php 6 years ago class-give-cron.php 6 years ago class-give-donate-form.php 1 year ago class-give-donor.php 2 years ago class-give-email-access.php 5 years ago class-give-license-handler.php 1 year ago class-give-logging.php 5 years ago class-give-readme-parser.php 4 years ago class-give-roles.php 6 years ago class-give-scripts.php 2 years ago class-give-session.php 5 years ago class-give-stats.php 6 years ago class-give-template-loader.php 6 years ago class-give-tooltips.php 6 years ago class-give-translation.php 4 years ago class-notices.php 2 years ago country-functions.php 1 year ago currencies-list.php 3 years ago currency-functions.php 3 years ago error-tracking.php 6 years ago filters.php 3 years ago formatting.php 1 year ago install.php 2 years ago login-register.php 2 years ago misc-functions.php 1 year ago plugin-compatibility.php 6 years ago post-types.php 1 year ago price-functions.php 6 years ago process-donation.php 1 year ago setting-functions.php 6 years ago shortcodes.php 1 year ago template-functions.php 4 years ago user-functions.php 3 years ago
class-give-cron.php
268 lines
1 <?php
2 /**
3 * Cron
4 *
5 * @package Give
6 * @subpackage Classes/Give_Cron
7 * @copyright Copyright (c) 2016, GiveWP
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 * @return static
50 * @since 1.8.13
51 * @access public
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 * @param array $schedules An array of non-default cron schedules.
77 *
78 * @return array An array of non-default cron schedules.
79 * @since 1.3.2
80 * @access public
81 */
82 public function __add_schedules( $schedules = array() ) {
83 // Adds once weekly to the existing schedules.
84 $schedules['weekly'] = array(
85 'interval' => 604800, // 7 * 24 * 3600
86 'display' => __( 'Once Weekly', 'give' ),
87 );
88
89 // Adds once weekly to the existing schedules.
90 $schedules['monthly'] = array(
91 'interval' => 2592000, // 30 * 24 * 3600
92 'display' => __( 'Once Monthly', 'give' ),
93 );
94
95 // Adds every third day to the existing schedules.
96 $schedules['thricely'] = array(
97 'interval' => 259200, // 3 * 24 * 3600
98 'display' => __( 'Every Third Day', 'give' ),
99 );
100
101 return $schedules;
102 }
103
104 /**
105 * Schedules our events
106 *
107 * @return void
108 * @since 1.3.2
109 * @access public
110 */
111 public function __schedule_events() {
112 $this->monthly_events();
113 $this->weekly_events();
114 $this->daily_events();
115 $this->thricely_events();
116 }
117
118 /**
119 * Schedule monthly events
120 *
121 * @return void
122 * @since 2.5.0
123 * @access private
124 */
125 private function monthly_events() {
126 if ( ! wp_next_scheduled( 'give_monthly_scheduled_events' ) ) {
127 wp_schedule_event( current_time( 'timestamp' ), 'monthly', 'give_monthly_scheduled_events' );
128 }
129 }
130
131 /**
132 * Schedule weekly events
133 *
134 * @return void
135 * @since 1.3.2
136 * @access private
137 */
138 private function weekly_events() {
139 if ( ! wp_next_scheduled( 'give_weekly_scheduled_events' ) ) {
140 wp_schedule_event( current_time( 'timestamp' ), 'weekly', 'give_weekly_scheduled_events' );
141 }
142 }
143
144 /**
145 * Schedule daily events
146 *
147 * @return void
148 * @since 1.3.2
149 * @access private
150 */
151 private function daily_events() {
152 if ( ! wp_next_scheduled( 'give_daily_scheduled_events' ) ) {
153 wp_schedule_event( current_time( 'timestamp' ), 'daily', 'give_daily_scheduled_events' );
154 }
155 }
156
157 /**
158 * Schedule thricely events
159 *
160 * @return void
161 * @since 2.5.11
162 * @access private
163 */
164 private function thricely_events() {
165 if ( ! wp_next_scheduled( 'give_thricely_scheduled_events' ) ) {
166 wp_schedule_event( current_time( 'timestamp' ), 'thricely', 'give_thricely_scheduled_events' );
167 }
168 }
169
170 /**
171 * get cron job action name
172 *
173 * @param string $type
174 *
175 * @return string
176 * @since 1.8.13
177 * @access public
178 */
179 public static function get_cron_action( $type = 'weekly' ) {
180 $cron_action = '';
181
182 switch ( $type ) {
183 case 'daily':
184 $cron_action = 'give_daily_scheduled_events';
185 break;
186
187 case 'thricely':
188 $cron_action = 'give_thricely_scheduled_events';
189 break;
190
191 case 'monthly':
192 $cron_action = 'give_monthly_scheduled_events';
193 break;
194
195 case 'weekly':
196 $cron_action = 'give_weekly_scheduled_events';
197 break;
198 }
199
200 return $cron_action;
201 }
202
203 /**
204 * Add action to cron action
205 *
206 * @param string $callback
207 * @param string $type
208 *
209 * @since 1.8.13
210 * @access private
211 */
212 private static function add_event( $callback, $type = 'weekly' ) {
213 $cron_event = self::get_cron_action( $type );
214 add_action( $cron_event, $callback );
215 }
216
217 /**
218 * Add weekly event
219 *
220 * @param string $callback
221 *
222 * @since 1.8.13
223 * @access public
224 */
225 public static function add_weekly_event( $callback ) {
226 self::add_event( $callback );
227 }
228
229 /**
230 * Add daily event
231 *
232 * @param $callback
233 *
234 * @since 1.8.13
235 * @access public
236 */
237 public static function add_daily_event( $callback ) {
238 self::add_event( $callback, 'daily' );
239 }
240
241 /**
242 * Add thricely event
243 *
244 * @param $callback
245 *
246 * @since 2.5.11
247 * @access public
248 */
249 public static function add_thricely_event( $callback ) {
250 self::add_event( $callback, 'thricely' );
251 }
252
253 /**
254 * Add monthly event
255 *
256 * @param $callback
257 *
258 * @since 2.5.0
259 * @access public
260 */
261 public static function add_monthly_event( $callback ) {
262 self::add_event( $callback, 'monthly' );
263 }
264 }
265
266 // Initiate class.
267 Give_Cron::get_instance();
268