PluginProbe ʕ •ᴥ•ʔ
WP STAGING – WordPress Backups, Restore, Migration & Clone / 4.9.4
WP STAGING – WordPress Backups, Restore, Migration & Clone v4.9.4
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 2 weeks ago Dto 3 weeks ago Interfaces 3 months ago Jobs 1 month ago Renderer 2 days ago Service 2 days ago Tasks 2 weeks ago Traits 1 month ago CloneOptions.php 6 months ago FirstRun.php 5 months ago Sites.php 1 month ago StagingServiceProvider.php 2 weeks 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