PluginProbe ʕ •ᴥ•ʔ
WP STAGING – WordPress Backup, Restore, Migration & Clone / 4.7.3
WP STAGING – WordPress Backup, Restore, Migration & Clone v4.7.3
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 / Framework / CommonServiceProvider.php
wp-staging / Framework Last commit date
Adapter 2 months ago Analytics 4 months ago Assets 2 months ago BackgroundProcessing 3 months ago CloningProcess 4 months ago Collection 3 years ago Command 5 years ago Component 8 months ago DI 6 months ago Database 2 months ago DependencyResolver 2 years ago Exceptions 2 years ago Facades 2 months ago Filesystem 2 months ago Interfaces 5 years ago Job 3 months ago Language 3 months ago Logger 2 months ago Mails 3 months ago Network 2 months ago Newsfeed 4 months ago Notices 2 months ago Performance 2 months ago Permalinks 11 months ago Queue 4 months ago Rest 2 months ago Security 5 months ago Settings 2 months ago TemplateEngine 6 months ago ThirdParty 5 months ago Traits 2 months ago Utils 2 months ago AnalyticsServiceProvider.php 11 months ago AssetServiceProvider.php 1 year ago CommonServiceProvider.php 3 months ago ErrorHandler.php 8 months ago NoticeServiceProvider.php 11 months ago SettingsServiceProvider.php 2 months ago SiteInfo.php 5 months ago Url.php 4 months ago
CommonServiceProvider.php
99 lines
1 <?php
2
3 namespace WPStaging\Framework;
4
5 use WPStaging\Core\Cron\Cron;
6 use WPStaging\Framework\Analytics\AnalyticsCleanup;
7 use WPStaging\Framework\DI\ServiceProvider;
8 use WPStaging\Framework\Filesystem\DebugLogReader;
9 use WPStaging\Framework\Filesystem\DiskWriteCheck;
10 use WPStaging\Framework\Filesystem\LogCleanup;
11 use WPStaging\Framework\Mails\MailSender;
12 use WPStaging\Framework\Notices\BackupPluginsNotice;
13 use WPStaging\Framework\Notices\CliIntegrationNotice;
14 use WPStaging\Framework\Notices\WpVersionCompatNotice;
15 use WPStaging\Framework\Performance\MemoryExhaust;
16 use WPStaging\Framework\Security\Otp\Otp;
17 use WPStaging\Framework\Settings\DarkMode;
18 use WPStaging\Framework\Traits\EventLoggerTrait;
19 use WPStaging\Framework\Utils\DBPermissions;
20 use WPStaging\Staging\Ajax\StagingSiteDataChecker;
21
22 /**
23 * Class CommonServiceProvider
24 *
25 * A Service Provider for binds common to both Free and Pro.
26 *
27 * @package WPStaging\Framework
28 */
29 class CommonServiceProvider extends ServiceProvider
30 {
31 use EventLoggerTrait;
32
33 protected function registerClasses()
34 {
35 $this->container->singleton(DiskWriteCheck::class);
36 $this->container->make(DebugLogReader::class)->listenDeleteLogRequest();
37
38 add_action(Cron::ACTION_DAILY_EVENT, [$this, 'cleanupLogs'], 25, 0);
39 add_action(Cron::ACTION_DAILY_EVENT, [$this, 'cleanupAnalytics'], 25, 0);
40 add_action(Cron::ACTION_DAILY_EVENT, [$this, 'cleanupExpiredOtps'], 25, 0);
41 add_action("wp_ajax_wpstg_is_writable_clone_destination_dir", $this->container->callback(StagingSiteDataChecker::class, "ajaxIsWritableCloneDestinationDir")); // phpcs:ignore WPStaging.Security.AuthorizationChecked
42 add_action("wp_ajax_wpstg_check_user_permissions", $this->container->callback(DBPermissions::class, 'ajaxCheckDBPermissions')); // phpcs:ignore WPStaging.Security.AuthorizationChecked
43 add_action("wp_ajax_wpstg_check_user_is_authenticated", [$this, "ajaxIsUserAuthenticated"]);// phpcs:ignore WPStaging.Security.AuthorizationChecked
44 add_action("wp_ajax_nopriv_wpstg_check_user_is_authenticated", [$this, "ajaxIsUserAuthenticated"]);// phpcs:ignore WPStaging.Security.AuthorizationChecked
45 add_action('wp_ajax_wpstg_backup_plugin_notice_close', $this->container->callback(BackupPluginsNotice::class, 'ajaxBackupPluginNoticeClose')); // phpcs:ignore WPStaging.Security.AuthorizationChecked
46 add_action('wp_ajax_wpstg_backup_plugin_notice_remind_me', $this->container->callback(BackupPluginsNotice::class, 'ajaxBackupPluginNoticeRemindMe')); // phpcs:ignore WPStaging.Security.AuthorizationChecked
47 add_action('wp_ajax_wpstg_cli_notice_close', $this->container->callback(CliIntegrationNotice::class, 'ajaxCliNoticeClose')); // phpcs:ignore WPStaging.Security.AuthorizationChecked
48 add_action('wp_ajax_wpstg_cli_notice_hide_forever', $this->container->callback(CliIntegrationNotice::class, 'ajaxCliNoticeHideForever')); // phpcs:ignore WPStaging.Security.AuthorizationChecked
49 add_action('wp_ajax_wpstg_cli_get_backup_list', $this->container->callback(CliIntegrationNotice::class, 'ajaxGetCliBackupList')); // phpcs:ignore WPStaging.Security.AuthorizationChecked
50 add_action('admin_init', $this->container->callback(DarkMode::class, 'mayBeShowDarkMode'), 10, 1);
51 add_action('wp_ajax_wpstg_set_dark_mode', $this->container->callback(DarkMode::class, 'ajaxEnableDefaultColorMode')); // phpcs:ignore WPStaging.Security.AuthorizationChecked
52 add_action('wp_ajax_wpstg_set_default_os_color_mode', $this->container->callback(DarkMode::class, 'ajaxSetDefaultOsMode')); // phpcs:ignore WPStaging.Security.AuthorizationChecked
53 add_action("wp_ajax_wpstg_log_event_failure", [$this, "ajaxLogEventFailure"]); // phpcs:ignore WPStaging.Security.AuthorizationChecked
54 add_action("wp_ajax_nopriv_wpstg_log_event_failure", [$this, "ajaxLogEventFailure"]); // phpcs:ignore WPStaging.Security.AuthorizationChecked
55 add_action('wp_ajax_wpstg--detect-memory-exhaust', $this->container->callback(MemoryExhaust::class, 'ajaxResponse')); // phpcs:ignore WPStaging.Security.AuthorizationChecked
56 add_action("wp_ajax_wpstg_log_event_success", [$this, "ajaxLogEventSuccess"]); // phpcs:ignore WPStaging.Security.AuthorizationChecked
57 add_action("wp_ajax_nopriv_wpstg_log_event_success", [$this, "ajaxLogEventSuccess"]); // phpcs:ignore WPStaging.Security.AuthorizationChecked
58 add_action('wp_ajax_wpstg_send_mail_notification', $this->container->callback(MailSender::class, 'ajaxSendEmailNotification')); // phpcs:ignore WPStaging.Security.AuthorizationChecked
59 add_action('wp_ajax_nopriv_wpstg_send_mail_notification', $this->container->callback(MailSender::class, 'ajaxSendEmailNotification')); // phpcs:ignore WPStaging.Security.AuthorizationChecked
60 add_action('wp_ajax_wpstg_dismiss_compat_notice', $this->container->callback(WpVersionCompatNotice::class, 'ajaxDismissCompatNotice')); // phpcs:ignore WPStaging.Security.AuthorizationChecked
61 }
62
63 /**
64 * @return void
65 */
66 public function cleanupLogs()
67 {
68 $this->container->make(LogCleanup::class)->cleanOldLogs();
69 }
70
71 /**
72 * @return void
73 */
74 public function cleanupAnalytics()
75 {
76 $this->container->make(AnalyticsCleanup::class)->cleanupOldAnalytics();
77 }
78
79 /**
80 * @return void
81 */
82 public function cleanupExpiredOtps()
83 {
84 $this->container->make(Otp::class)->cleanupExpiredOtps();
85 }
86
87 /**
88 * @return void
89 */
90 public function ajaxIsUserAuthenticated()
91 {
92 if (!is_user_logged_in()) {
93 wp_send_json(['wpAuthCheck' => false, 'redirectUrl' => wp_login_url()]);
94 }
95
96 wp_send_json(['wpAuthCheck' => true]);
97 }
98 }
99