PluginProbe ʕ •ᴥ•ʔ
WP STAGING – WordPress Backups, Restore, Migration & Clone / 4.9.5
WP STAGING – WordPress Backups, Restore, Migration & Clone v4.9.5
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 2 days 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 /** @var Cron */
12 private $cronAdapter;
13
14 /** @var BackupScheduler */
15 private $backupScheduler;
16
17 /** @var Auth */
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 * @return bool
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 * @param array $schedule
69 * @param array $proCrons
70 * @return bool
71 */
72 protected function isProCronSchedule($schedule, $proCrons)
73 {
74 return in_array($schedule['schedule'], $proCrons);
75 }
76 }
77