PluginProbe ʕ •ᴥ•ʔ
WP STAGING – WordPress Backup, Restore, Migration & Clone / 4.9.2
WP STAGING – WordPress Backup, Restore, Migration & Clone v4.9.2
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 / Staging / StagingServiceProvider.php
wp-staging / Staging Last commit date
Ajax 2 days ago Dto 2 days ago Interfaces 2 months ago Jobs 2 weeks ago Renderer 2 days ago Service 2 days ago Tasks 1 week ago Traits 2 weeks ago CloneOptions.php 5 months ago FirstRun.php 4 months ago Sites.php 2 weeks ago StagingServiceProvider.php 2 weeks ago
StagingServiceProvider.php
91 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 add_action('wp_ajax_wpstg--staging-site--setup', $this->container->callback(Setup::class, 'ajaxSetup')); // phpcs:ignore WPStaging.Security.AuthorizationChecked
76
77 if (!WPStaging::isBasic()) {
78 return;
79 }
80
81 add_action('wp_ajax_wpstg--staging-site--prepare-create', $this->container->callback(PrepareCreate::class, 'ajaxPrepare')); // phpcs:ignore WPStaging.Security.AuthorizationChecked
82 add_action('wp_ajax_wpstg--staging-site--create', $this->container->callback(Create::class, 'render')); // phpcs:ignore WPStaging.Security.AuthorizationChecked
83
84 add_action('wp_ajax_wpstg--staging-site--prepare-update', $this->container->callback(PrepareUpdate::class, 'ajaxPrepare')); // phpcs:ignore WPStaging.Security.AuthorizationChecked
85 add_action('wp_ajax_wpstg--staging-site--update', $this->container->callback(Update::class, 'render')); // phpcs:ignore WPStaging.Security.AuthorizationChecked
86
87 add_action('wp_ajax_wpstg--staging-site--prepare-reset', $this->container->callback(PrepareReset::class, 'ajaxPrepare')); // phpcs:ignore WPStaging.Security.AuthorizationChecked
88 add_action('wp_ajax_wpstg--staging-site--reset', $this->container->callback(Reset::class, 'render')); // phpcs:ignore WPStaging.Security.AuthorizationChecked
89 }
90 }
91