PluginProbe ʕ •ᴥ•ʔ
WP STAGING – WordPress Backup, Restore, Migration & Clone / 3.8.4
WP STAGING – WordPress Backup, Restore, Migration & Clone v3.8.4
4.9.1 4.9.0 4.8.1 trunk 3.0.0 3.0.1 3.0.2 3.0.3 3.0.4 3.0.5 3.0.6 3.1.0 3.1.1 3.1.2 3.1.3 3.1.4 3.10.0 3.2.0 3.3.1 3.3.2 3.3.3 3.4.1 3.4.3 3.5.0 3.6.0 3.7.1 3.8.0 3.8.1 3.8.2 3.8.3 3.8.4 3.8.5 3.8.6 3.8.7 3.9.0 3.9.1 3.9.2 3.9.3 3.9.4 4.0.0 4.1.0 4.1.1 4.1.2 4.1.3 4.1.4 4.2.0 4.2.1 4.3.0 4.3.1 4.3.2 4.4.0 4.5.0 4.6.0 4.7.0 4.7.1 4.7.2 4.7.3 4.8.0
wp-staging / Basic / Ajax / ProCronsCleaner.php
wp-staging / Basic / Ajax Last commit date
ProCronsCleaner.php 3 years ago
ProCronsCleaner.php
68 lines
1 <?php
2
3 namespace WPStaging\Basic\Ajax;
4
5 use WPStaging\Backup\BackupScheduler;
6 use WPStaging\Core\Cron\Cron;
7
8 class ProCronsCleaner
9 {
10 /** @var Cron */
11 private $cronAdapter;
12
13 /** @var BackupScheduler */
14 private $backupScheduler;
15
16 public function __construct(Cron $cronAdapter, BackupScheduler $backupScheduler)
17 {
18 $this->cronAdapter = $cronAdapter;
19 $this->backupScheduler = $backupScheduler;
20 }
21
22 public function ajaxCleanProCrons()
23 {
24 $proCrons = $this->cronAdapter->getProEvents();
25 $backupSchedules = $this->backupScheduler->getSchedules();
26
27 foreach ($backupSchedules as $backupSchedule) {
28 if ($this->isProCronSchedule($backupSchedule, $proCrons)) {
29 $this->backupScheduler->deleteSchedule($backupSchedule['scheduleId'], $reCreateCron = false);
30 }
31 }
32
33 $this->backupScheduler->reCreateCron();
34
35 wp_send_json([
36 'success' => true,
37 'message' => esc_html__('Successfully removed PRO cron events.', 'wp-staging'),
38 ]);
39 }
40
41 /**
42 * @return bool
43 */
44 public function haveProCrons()
45 {
46 $proCrons = $this->cronAdapter->getProEvents();
47 $backupSchedules = $this->backupScheduler->getSchedules();
48
49 foreach ($backupSchedules as $backupSchedule) {
50 if ($this->isProCronSchedule($backupSchedule, $proCrons)) {
51 return true;
52 }
53 }
54
55 return false;
56 }
57
58 /**
59 * @param array $schedule
60 * @param array $proCrons
61 * @return bool
62 */
63 protected function isProCronSchedule($schedule, $proCrons)
64 {
65 return in_array($schedule['schedule'], $proCrons);
66 }
67 }
68