PluginProbe ʕ •ᴥ•ʔ
JetFormBuilder — Dynamic Blocks Form Builder / 3.6.4.2
JetFormBuilder — Dynamic Blocks Form Builder v3.6.4.2
3.6.5.1 3.6.5 3.6.4.2 3.6.4.1 3.6.4 3.6.3.1 3.6.3 3.6.2.2 3.6.2.1 3.6.2 3.6.1.1 3.6.1 3.6.0.1 trunk 1.0.0 1.0.1 1.0.2 1.0.3 1.1.0 1.1.1 1.1.2 1.1.3 1.1.4 1.1.5 1.1.6 1.1.7 1.2.0 1.2.1 1.2.2 1.2.3 1.2.4 1.2.5 1.2.6 1.2.7 1.3.0 1.3.1 1.3.2 1.3.3 1.4.0 1.4.1 1.4.2 1.4.3 1.5.0 1.5.1 1.5.2 1.5.3 1.5.4 1.5.5 2.0.0 2.0.1 2.0.2 2.0.3 2.0.4 2.0.5 2.0.6 2.1.0 2.1.1 2.1.10 2.1.11 2.1.2 2.1.3 2.1.4 2.1.5 2.1.6 2.1.7 2.1.8 2.1.9 3.0.0 3.0.0.1 3.0.0.2 3.0.0.3 3.0.1 3.0.1.1 3.0.2 3.0.3 3.0.4 3.0.5 3.0.6 3.0.7 3.0.8 3.0.9 3.1.0 3.1.0.1 3.1.1 3.1.2 3.1.3 3.1.4 3.1.5 3.1.6 3.1.7 3.1.8 3.1.9 3.2.0 3.2.1 3.2.2 3.2.3 3.3.0 3.3.1 3.3.2 3.3.3 3.3.3.1 3.3.4 3.3.4.1 3.3.4.2 3.4.0 3.4.1 3.4.2 3.4.3 3.4.4 3.4.5 3.4.5.1 3.4.5.2 3.4.6 3.4.7 3.4.7.1 3.5.0 3.5.1 3.5.1.1 3.5.1.2 3.5.2 3.5.2.1 3.5.3 3.5.4 3.5.5 3.5.6 3.5.6.1 3.5.6.2 3.5.6.3 3.6.0
jetformbuilder / vendor / woocommerce / action-scheduler / classes / abstracts / ActionScheduler_Abstract_RecurringSchedule.php
jetformbuilder / vendor / woocommerce / action-scheduler / classes / abstracts Last commit date
ActionScheduler.php 2 months ago ActionScheduler_Abstract_ListTable.php 1 year ago ActionScheduler_Abstract_QueueRunner.php 2 months ago ActionScheduler_Abstract_RecurringSchedule.php 1 year ago ActionScheduler_Abstract_Schedule.php 1 year ago ActionScheduler_Abstract_Schema.php 1 year ago ActionScheduler_Lock.php 1 year ago ActionScheduler_Logger.php 1 year ago ActionScheduler_Store.php 1 year ago ActionScheduler_TimezoneHelper.php 1 year ago ActionScheduler_WPCLI_Command.php 1 year ago
ActionScheduler_Abstract_RecurringSchedule.php
113 lines
1 <?php
2
3 /**
4 * Class ActionScheduler_Abstract_RecurringSchedule
5 */
6 abstract class ActionScheduler_Abstract_RecurringSchedule extends ActionScheduler_Abstract_Schedule {
7
8 /**
9 * The date & time the first instance of this schedule was setup to run (which may not be this instance).
10 *
11 * Schedule objects are attached to an action object. Each schedule stores the run date for that
12 * object as the start date - @see $this->start - and logic to calculate the next run date after
13 * that - @see $this->calculate_next(). The $first_date property also keeps a record of when the very
14 * first instance of this chain of schedules ran.
15 *
16 * @var DateTime
17 */
18 private $first_date = null;
19
20 /**
21 * Timestamp equivalent of @see $this->first_date
22 *
23 * @var int
24 */
25 protected $first_timestamp = null;
26
27 /**
28 * The recurrence between each time an action is run using this schedule.
29 * Used to calculate the start date & time. Can be a number of seconds, in the
30 * case of ActionScheduler_IntervalSchedule, or a cron expression, as in the
31 * case of ActionScheduler_CronSchedule. Or something else.
32 *
33 * @var mixed
34 */
35 protected $recurrence;
36
37 /**
38 * Construct.
39 *
40 * @param DateTime $date The date & time to run the action.
41 * @param mixed $recurrence The data used to determine the schedule's recurrence.
42 * @param DateTime|null $first (Optional) The date & time the first instance of this interval schedule ran. Default null, meaning this is the first instance.
43 */
44 public function __construct( DateTime $date, $recurrence, ?DateTime $first = null ) {
45 parent::__construct( $date );
46 $this->first_date = empty( $first ) ? $date : $first;
47 $this->recurrence = $recurrence;
48 }
49
50 /**
51 * Schedule is recurring.
52 *
53 * @return bool
54 */
55 public function is_recurring() {
56 return true;
57 }
58
59 /**
60 * Get the date & time of the first schedule in this recurring series.
61 *
62 * @return DateTime|null
63 */
64 public function get_first_date() {
65 return clone $this->first_date;
66 }
67
68 /**
69 * Get the schedule's recurrence.
70 *
71 * @return string
72 */
73 public function get_recurrence() {
74 return $this->recurrence;
75 }
76
77 /**
78 * For PHP 5.2 compat, since DateTime objects can't be serialized
79 *
80 * @return array
81 */
82 public function __sleep() {
83 $sleep_params = parent::__sleep();
84 $this->first_timestamp = $this->first_date->getTimestamp();
85 return array_merge(
86 $sleep_params,
87 array(
88 'first_timestamp',
89 'recurrence',
90 )
91 );
92 }
93
94 /**
95 * Unserialize recurring schedules serialized/stored prior to AS 3.0.0
96 *
97 * Prior to Action Scheduler 3.0.0, schedules used different property names to refer
98 * to equivalent data. For example, ActionScheduler_IntervalSchedule::start_timestamp
99 * was the same as ActionScheduler_SimpleSchedule::timestamp. This was addressed in
100 * Action Scheduler 3.0.0, where properties and property names were aligned for better
101 * inheritance. To maintain backward compatibility with scheduled serialized and stored
102 * prior to 3.0, we need to correctly map the old property names.
103 */
104 public function __wakeup() {
105 parent::__wakeup();
106 if ( $this->first_timestamp > 0 ) {
107 $this->first_date = as_get_datetime_object( $this->first_timestamp );
108 } else {
109 $this->first_date = $this->get_date();
110 }
111 }
112 }
113