PluginProbe ʕ •ᴥ•ʔ
SureCart – Ecommerce Made Easy For Selling Physical Products, Digital Downloads, Subscriptions, Donations, & Payments / 4.6.0
SureCart – Ecommerce Made Easy For Selling Physical Products, Digital Downloads, Subscriptions, Donations, & Payments v4.6.0
4.6.1 4.6.0 4.5.1 4.5.0 4.4.2 4.4.1 4.4.0 4.3.3 4.3.2 4.3.1 4.3.0 4.2.3 4.2.2 4.2.1 1.0.3 1.0.4 1.0.5 1.0.6 1.1.0 1.1.1 1.1.10 1.1.11 1.1.12 1.1.13 1.1.14 1.1.15 1.1.16 1.1.17 1.1.18 1.1.19 1.1.2 1.1.3 1.1.4 1.1.5 1.1.6 1.1.7 1.1.8 1.1.9 1.10.0 1.10.1 1.10.2 1.10.3 1.10.4 1.11.0 1.11.1 1.11.2 1.2.0 1.2.1 1.2.2 1.2.3 1.2.4 1.2.5 1.3.0 1.3.1 1.3.2 1.3.3 1.3.4 1.4.0 1.4.1 1.4.2 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.6.0 1.6.1 1.6.2 1.6.3 1.6.4 1.7.0 1.7.1 1.7.2 1.8.0 1.8.1 1.8.2 1.8.3 1.8.4 1.8.5 1.9.0 1.9.1 1.9.2 1.9.3 1.9.4 1.9.5 2.0.0 2.0.1 2.1.0 2.1.1 2.1.2 2.1.3 2.1.4 2.10.0 2.10.1 2.11.0 2.11.1 2.11.2 2.11.3 2.11.4 2.12.0 2.13.0 2.14.0 2.14.1 2.15.0 2.15.1 2.16.0 2.16.1 2.16.2 2.16.3 2.17.0 2.17.1 2.17.2 2.18.0 2.19.0 2.19.2 2.19.3 2.19.4 2.2.0 2.2.1 2.20.0 2.20.1 2.20.2 2.20.3 2.20.4 2.20.5 2.20.6 2.21.0 2.22.0 2.22.1 2.23.0 2.24.0 2.25.0 2.25.1 2.25.2 2.26.0 2.27.0 2.27.1 2.28.0 2.29.0 2.29.1 2.29.2 2.29.3 2.29.4 2.3.0 2.3.1 2.30.0 2.31.0 2.31.1 2.31.2 2.31.3 2.4.0 2.4.1 2.4.2 2.4.3 2.4.4 2.40.0 2.40.1 2.5.0 2.5.1 2.5.2 2.6.0 2.6.1 2.6.2 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.8.2 2.8.3 2.8.4 2.9.0 3.0.0 3.0.0-RC1 3.0.0-RC2 3.0.0-beta1 3.0.0-beta2 3.0.1 3.0.2 3.0.3 3.0.4 3.0.5 3.1.0 3.1.1 3.1.2 3.1.3 3.1.4 3.1.5 3.1.6 3.10.0 3.10.1 3.11.0 3.12.0 3.13.0 3.13.1 3.13.2 3.13.3 3.13.4 3.14.0 3.15.0 3.15.1 3.15.2 3.15.3 3.15.4 3.15.5 3.16.0 3.16.1 3.16.2 3.16.3 3.16.4 3.16.5 3.16.6 3.16.7 3.16.8 3.17.0 3.17.1 3.17.2 3.17.3 3.17.4 3.17.5 3.17.6 3.18.0 3.19.0 3.19.1 3.19.2 3.2.0 3.2.1 3.2.2 3.20.0 3.20.1 3.3.0 3.3.1 3.4.0 3.4.1 3.4.2 3.4.3 3.5.0 3.5.1 3.5.2 3.5.3 3.6.0 3.6.1 3.6.2 3.7.0 3.7.1 3.7.2 3.7.3 3.8.0 3.8.1 3.8.2 3.8.3 3.8.4 3.8.5 3.9.0 4.0.0 4.0.1 4.0.2 4.0.3 trunk 4.1.0 0.2.19.1 4.1.1 1.0.0 4.2.0 1.0.1 1.0.2
surecart / app / src / Sync / Tasks / Task.php
surecart / app / src / Sync / Tasks Last commit date
CollectionCleanupTask.php 1 year ago ProductCleanupTask.php 1 year ago ProductSyncTask.php 1 year ago Task.php 1 year ago
Task.php
109 lines
1 <?php
2
3 namespace SureCart\Sync\Tasks;
4
5 /**
6 * Abstract task class.
7 */
8 abstract class Task {
9 /**
10 * The action name.
11 *
12 * @var string
13 */
14 protected $action_name;
15
16 /**
17 * Show a notice.
18 *
19 * @var boolean
20 */
21 protected $show_notice = false;
22
23 /**
24 * Bootstrap any actions.
25 *
26 * @return void
27 */
28 public function bootstrap() {
29 add_action( $this->action_name, [ $this, 'handle' ], 10, 2 );
30 }
31
32 /**
33 * Whether to show a notice.
34 *
35 * @param boolean $show_notice Whether to show a notice.
36 *
37 * @return self
38 */
39 public function withNotice( $show_notice = true ) {
40 $this->show_notice = $show_notice;
41 return $this;
42 }
43
44 /**
45 * Queue the sync for a later time.
46 *
47 * @param string $collection_term_id The term id.
48 *
49 * @return \SureCart\Queue\Async
50 */
51 public function queue( $id ) {
52 return \SureCart::queue()->async(
53 $this->action_name,
54 [
55 'id' => $id,
56 'show_notice' => $this->show_notice,
57 ],
58 $this->action_name . '-' . $id, // unique id for the term.
59 true // force unique. This will replace any existing jobs.
60 );
61 }
62
63 /**
64 * Check if the task is scheduled.
65 *
66 * @param string $id The id.
67 *
68 * @return bool
69 */
70 public function isScheduled( $id ) {
71 return \SureCart::queue()->isScheduled(
72 $this->action_name,
73 [
74 'id' => $id,
75 'show_notice' => $this->show_notice,
76 ],
77 $this->action_name . '-' . $id, // unique id for the term.
78 );
79 }
80
81 /**
82 * Check are any actions scheduled.
83 *
84 * @return bool
85 */
86 public function showNotice() {
87 return \SureCart::queue()->showNotice( $this->action_name );
88 }
89
90 /**
91 * Cancel the task.
92 *
93 * @param string $id The id.
94 *
95 * @return \SureCart\Queue\Async
96 */
97 public function cancel( $id ) {
98 return \SureCart::queue()->cancel(
99 $this->action_name,
100 [
101 'id' => $id,
102 'show_notice' => $this->show_notice,
103 ],
104 $this->action_name . '-' . $id, // unique id for the term.
105 true // force unique. This will replace any existing jobs.
106 );
107 }
108 }
109