PluginProbe ʕ •ᴥ•ʔ
WP STAGING – WordPress Backups, Restore, Migration & Clone / 4.11.0
WP STAGING – WordPress Backups, Restore, Migration & Clone v4.11.0
4.11.0 4.10.0 4.9.5 4.9.4 4.9.3 4.9.2 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 1 day ago
ProCronsCleaner.php
77 lines
1 <?php
2
3 namespace WPStaging\Basic\Ajax;
4
5 use WPStaging\Backup\BackupScheduler;
6 use WPStaging\Core\Cron\Cron;
7 use WPStaging\Framework\Security\Auth;
8
9 class ProCronsCleaner
10 {
11
12 private $cronAdapter;
13
14
15 private $backupScheduler;
16
17
18 private $auth;
19
20 public function __construct(Cron $cronAdapter, BackupScheduler $backupScheduler, Auth $auth)
21 {
22 $this->cronAdapter = $cronAdapter;
23 $this->backupScheduler = $backupScheduler;
24 $this->auth = $auth;
25 }
26
27 public function ajaxCleanProCrons()
28 {
29 if (!$this->auth->isAuthenticatedRequest()) {
30 wp_send_json_error(['message' => esc_html__('Invalid Request!', 'wp-staging')], 401);
31 }
32
33 $proCrons = $this->cronAdapter->getProEvents();
34 $backupSchedules = $this->backupScheduler->getSchedules();
35
36 foreach ($backupSchedules as $backupSchedule) {
37 if ($this->isProCronSchedule($backupSchedule, $proCrons)) {
38 $this->backupScheduler->deleteSchedule($backupSchedule['scheduleId'], $reCreateCron = false);
39 }
40 }
41
42 $this->backupScheduler->reCreateCron();
43
44 wp_send_json([
45 'success' => true,
46 'message' => esc_html__('Successfully removed PRO cron events.', 'wp-staging'),
47 ]);
48 }
49
50
51
52
53 public function haveProCrons()
54 {
55 $proCrons = $this->cronAdapter->getProEvents();
56 $backupSchedules = $this->backupScheduler->getSchedules();
57
58 foreach ($backupSchedules as $backupSchedule) {
59 if ($this->isProCronSchedule($backupSchedule, $proCrons)) {
60 return true;
61 }
62 }
63
64 return false;
65 }
66
67
68
69
70
71
72 protected function isProCronSchedule($schedule, $proCrons)
73 {
74 return in_array($schedule['schedule'], $proCrons);
75 }
76 }
77