PluginProbe ʕ •ᴥ•ʔ
WP STAGING – WordPress Backup, Restore, Migration & Clone / 4.9.3
WP STAGING – WordPress Backup, Restore, Migration & Clone v4.9.3
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 2 days ago Dto 1 week ago Interfaces 3 months ago Jobs 3 weeks ago Renderer 1 week ago Service 2 days ago Tasks 2 days ago Traits 3 weeks ago CloneOptions.php 6 months ago FirstRun.php 5 months ago Sites.php 3 weeks ago StagingServiceProvider.php 2 days 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 * Registers staging services and AJAX endpoints.
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