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 / Staging / StagingServiceProvider.php
wp-staging / Staging Last commit date
Ajax 1 day ago Dto 1 day ago Interfaces 1 day ago Jobs 1 day ago Renderer 1 day ago Service 1 day ago Tasks 1 day ago Traits 1 day ago CloneOptions.php 1 day ago FirstRun.php 1 day ago Sites.php 1 day ago StagingServiceProvider.php 1 day ago
StagingServiceProvider.php
98 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\DirectoryChildren;
16 use WPStaging\Staging\Ajax\Listing;
17 use WPStaging\Staging\Ajax\Delete\DeleteConfirm;
18 use WPStaging\Staging\Ajax\Repair;
19 use WPStaging\Staging\Ajax\Reset;
20 use WPStaging\Staging\Ajax\Reset\PrepareReset;
21 use WPStaging\Staging\Ajax\Setup;
22 use WPStaging\Staging\Ajax\SizeCalculator;
23 use WPStaging\Staging\Ajax\Update;
24 use WPStaging\Staging\Ajax\Update\PrepareUpdate;
25 use WPStaging\Staging\Dto\Job\StagingSiteDeleteDataDto;
26 use WPStaging\Staging\Dto\Job\StagingSiteJobsDataDto;
27 use WPStaging\Staging\Jobs\StagingSiteCreate;
28 use WPStaging\Staging\Jobs\StagingSiteDelete;
29 use WPStaging\Staging\Jobs\StagingSiteReset;
30 use WPStaging\Staging\Jobs\StagingSiteUpdate;
31 use WPStaging\Staging\Tasks\StagingSite\CleanupStagingTablesTask;
32
33
34
35
36 class StagingServiceProvider extends FeatureServiceProvider
37 {
38 protected function registerClasses()
39 {
40 $this->container->when(StagingSiteDelete::class)
41 ->needs(JobDataDto::class)
42 ->give(StagingSiteDeleteDataDto::class);
43
44 $this->container->when(StagingSiteCreate::class)
45 ->needs(JobDataDto::class)
46 ->give(StagingSiteJobsDataDto::class);
47
48 $this->container->when(StagingSiteUpdate::class)
49 ->needs(JobDataDto::class)
50 ->give(StagingSiteJobsDataDto::class);
51
52 $this->container->when(StagingSiteReset::class)
53 ->needs(JobDataDto::class)
54 ->give(StagingSiteJobsDataDto::class);
55
56 $this->container->when(CleanupStagingTablesTask::class)
57 ->needs(DatabaseInterface::class)
58 ->give(Database::class);
59 }
60
61 protected function addHooks()
62 {
63 $this->enqueueAjaxListeners();
64 }
65
66 protected function enqueueAjaxListeners()
67 {
68 add_action('wp_ajax_wpstg--staging-site--prepare-delete', $this->container->callback(PrepareDelete::class, 'ajaxPrepare')); // phpcs:ignore WPStaging.Security.AuthorizationChecked
69 add_action('wp_ajax_wpstg--staging-site--delete-confirmation', $this->container->callback(DeleteConfirm::class, 'ajaxConfirm')); // phpcs:ignore WPStaging.Security.AuthorizationChecked
70 add_action('wp_ajax_wpstg--staging-site--delete', $this->container->callback(Delete::class, 'ajaxDelete')); // phpcs:ignore WPStaging.Security.AuthorizationChecked
71 add_action('wp_ajax_wpstg--staging-site--listing', $this->container->callback(Listing::class, 'ajaxListing')); // phpcs:ignore WPStaging.Security.AuthorizationChecked
72 add_action('wp_ajax_wpstg--staging-site--fix-option', $this->container->callback(Repair::class, 'ajaxFixOption')); // phpcs:ignore WPStaging.Security.AuthorizationChecked
73 add_action('wp_ajax_wpstg--staging-site--report-option', $this->container->callback(Repair::class, 'ajaxReportOption')); // phpcs:ignore WPStaging.Security.AuthorizationChecked
74 add_action(StagingSiteCreate::ACTION_CLONING_COMPLETE, $this->container->callback(MalCare::class, 'maybeDisableMalCare'));
75 $this->enqueueStagingAjaxListeners();
76 }
77
78 protected function enqueueStagingAjaxListeners()
79 {
80 add_action('wp_ajax_wpstg--staging-site--setup', $this->container->callback(Setup::class, 'ajaxSetup')); // phpcs:ignore WPStaging.Security.AuthorizationChecked
81 add_action('wp_ajax_wpstg--staging-site--size', $this->container->callback(SizeCalculator::class, 'ajaxSize')); // phpcs:ignore WPStaging.Security.AuthorizationChecked
82 add_action('wp_ajax_wpstg--staging-site--directory-children', $this->container->callback(DirectoryChildren::class, 'ajaxRender')); // phpcs:ignore WPStaging.Security.AuthorizationChecked
83
84 if (!WPStaging::isBasic()) {
85 return;
86 }
87
88 add_action('wp_ajax_wpstg--staging-site--prepare-create', $this->container->callback(PrepareCreate::class, 'ajaxPrepare')); // phpcs:ignore WPStaging.Security.AuthorizationChecked
89 add_action('wp_ajax_wpstg--staging-site--create', $this->container->callback(Create::class, 'render')); // phpcs:ignore WPStaging.Security.AuthorizationChecked
90
91 add_action('wp_ajax_wpstg--staging-site--prepare-update', $this->container->callback(PrepareUpdate::class, 'ajaxPrepare')); // phpcs:ignore WPStaging.Security.AuthorizationChecked
92 add_action('wp_ajax_wpstg--staging-site--update', $this->container->callback(Update::class, 'render')); // phpcs:ignore WPStaging.Security.AuthorizationChecked
93
94 add_action('wp_ajax_wpstg--staging-site--prepare-reset', $this->container->callback(PrepareReset::class, 'ajaxPrepare')); // phpcs:ignore WPStaging.Security.AuthorizationChecked
95 add_action('wp_ajax_wpstg--staging-site--reset', $this->container->callback(Reset::class, 'render')); // phpcs:ignore WPStaging.Security.AuthorizationChecked
96 }
97 }
98