PluginProbe ʕ •ᴥ•ʔ
WP STAGING – WordPress Backup, Restore, Migration & Clone / 4.8.0
WP STAGING – WordPress Backup, Restore, Migration & Clone v4.8.0
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 / Staging / StagingServiceProvider.php
wp-staging / Staging Last commit date
Ajax 1 month ago Dto 2 months ago Interfaces 2 months ago Jobs 5 months ago Service 2 months ago Tasks 2 months ago Traits 1 month ago CloneOptions.php 5 months ago FirstRun.php 4 months ago Sites.php 2 months ago StagingServiceProvider.php 5 months ago
StagingServiceProvider.php
95 lines
1 <?php
2
3 namespace WPStaging\Staging;
4
5 use WPStaging\Core\WPStaging;
6 use WPStaging\Framework\Adapter\Database;
7 use WPStaging\Framework\Adapter\DatabaseInterface;
8 use WPStaging\Framework\DI\FeatureServiceProvider;
9 use WPStaging\Framework\Job\Dto\JobDataDto;
10 use WPStaging\Framework\ThirdParty\MalCare;
11 use WPStaging\Staging\Ajax\Create;
12 use WPStaging\Staging\Ajax\Create\PrepareCreate;
13 use WPStaging\Staging\Ajax\Delete;
14 use WPStaging\Staging\Ajax\Delete\PrepareDelete;
15 use WPStaging\Staging\Ajax\Listing;
16 use WPStaging\Staging\Ajax\Delete\DeleteConfirm;
17 use WPStaging\Staging\Ajax\Repair;
18 use WPStaging\Staging\Ajax\Reset;
19 use WPStaging\Staging\Ajax\Reset\PrepareReset;
20 use WPStaging\Staging\Ajax\Setup;
21 use WPStaging\Staging\Ajax\Update;
22 use WPStaging\Staging\Ajax\Update\PrepareUpdate;
23 use WPStaging\Staging\Dto\Job\StagingSiteDeleteDataDto;
24 use WPStaging\Staging\Dto\Job\StagingSiteJobsDataDto;
25 use WPStaging\Staging\Jobs\StagingSiteCreate;
26 use WPStaging\Staging\Jobs\StagingSiteDelete;
27 use WPStaging\Staging\Jobs\StagingSiteReset;
28 use WPStaging\Staging\Jobs\StagingSiteUpdate;
29 use WPStaging\Staging\Tasks\StagingSite\CleanupStagingTablesTask;
30
31 class StagingServiceProvider extends FeatureServiceProvider
32 {
33 protected function registerClasses()
34 {
35 $this->container->when(StagingSiteDelete::class)
36 ->needs(JobDataDto::class)
37 ->give(StagingSiteDeleteDataDto::class);
38
39 $this->container->when(StagingSiteCreate::class)
40 ->needs(JobDataDto::class)
41 ->give(StagingSiteJobsDataDto::class);
42
43 $this->container->when(StagingSiteUpdate::class)
44 ->needs(JobDataDto::class)
45 ->give(StagingSiteJobsDataDto::class);
46
47 $this->container->when(StagingSiteReset::class)
48 ->needs(JobDataDto::class)
49 ->give(StagingSiteJobsDataDto::class);
50
51 $this->container->when(CleanupStagingTablesTask::class)
52 ->needs(DatabaseInterface::class)
53 ->give(Database::class);
54 }
55
56 protected function addHooks()
57 {
58 $this->enqueueAjaxListeners();
59 }
60
61 protected function enqueueAjaxListeners()
62 {
63 add_action('wp_ajax_wpstg--staging-site--prepare-delete', $this->container->callback(PrepareDelete::class, 'ajaxPrepare')); // phpcs:ignore WPStaging.Security.AuthorizationChecked
64 add_action('wp_ajax_wpstg--staging-site--delete-confirmation', $this->container->callback(DeleteConfirm::class, 'ajaxConfirm')); // phpcs:ignore WPStaging.Security.AuthorizationChecked
65 add_action('wp_ajax_wpstg--staging-site--delete', $this->container->callback(Delete::class, 'ajaxDelete')); // phpcs:ignore WPStaging.Security.AuthorizationChecked
66 add_action('wp_ajax_wpstg--staging-site--listing', $this->container->callback(Listing::class, 'ajaxListing')); // phpcs:ignore WPStaging.Security.AuthorizationChecked
67 add_action('wp_ajax_wpstg--staging-site--fix-option', $this->container->callback(Repair::class, 'ajaxFixOption')); // phpcs:ignore WPStaging.Security.AuthorizationChecked
68 add_action('wp_ajax_wpstg--staging-site--report-option', $this->container->callback(Repair::class, 'ajaxReportOption')); // phpcs:ignore WPStaging.Security.AuthorizationChecked
69 add_action(StagingSiteCreate::ACTION_CLONING_COMPLETE, $this->container->callback(MalCare::class, 'maybeDisableMalCare'));
70 $this->enqueueStagingAjaxListeners();
71 }
72
73 protected function enqueueStagingAjaxListeners()
74 {
75 if (!defined('WPSTG_NEW_STAGING') || !WPSTG_NEW_STAGING) {
76 return;
77 }
78
79 add_action('wp_ajax_wpstg--staging-site--setup', $this->container->callback(Setup::class, 'ajaxSetup')); // phpcs:ignore WPStaging.Security.AuthorizationChecked
80
81 if (!WPStaging::isBasic()) {
82 return;
83 }
84
85 add_action('wp_ajax_wpstg--staging-site--prepare-create', $this->container->callback(PrepareCreate::class, 'ajaxPrepare')); // phpcs:ignore WPStaging.Security.AuthorizationChecked
86 add_action('wp_ajax_wpstg--staging-site--create', $this->container->callback(Create::class, 'render')); // phpcs:ignore WPStaging.Security.AuthorizationChecked
87
88 add_action('wp_ajax_wpstg--staging-site--prepare-update', $this->container->callback(PrepareUpdate::class, 'ajaxPrepare')); // phpcs:ignore WPStaging.Security.AuthorizationChecked
89 add_action('wp_ajax_wpstg--staging-site--update', $this->container->callback(Update::class, 'render')); // phpcs:ignore WPStaging.Security.AuthorizationChecked
90
91 add_action('wp_ajax_wpstg--staging-site--prepare-reset', $this->container->callback(PrepareReset::class, 'ajaxPrepare')); // phpcs:ignore WPStaging.Security.AuthorizationChecked
92 add_action('wp_ajax_wpstg--staging-site--reset', $this->container->callback(Reset::class, 'render')); // phpcs:ignore WPStaging.Security.AuthorizationChecked
93 }
94 }
95