PluginProbe ʕ •ᴥ•ʔ
WP STAGING – WordPress Backups, Restore, Migration & Clone / 4.11.1
WP STAGING – WordPress Backups, Restore, Migration & Clone v4.11.1
4.11.1 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 week ago Dto 1 week ago Interfaces 5 days ago Jobs 1 week ago Renderer 1 week ago Service 1 week ago Tasks 5 days ago Traits 5 days ago CloneOptions.php 1 week ago FirstRun.php 1 week ago Sites.php 5 days ago StagingServiceProvider.php 1 week 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