Ajax
1 year ago
Dto
1 year ago
Interfaces
1 year ago
Jobs
1 year ago
Service
1 year ago
Tasks
1 year ago
Traits
1 year ago
CloneOptions.php
1 year ago
FirstRun.php
1 year ago
Sites.php
1 year ago
StagingServiceProvider.php
1 year ago
StagingServiceProvider.php
65 lines
| 1 | <?php |
| 2 | |
| 3 | namespace WPStaging\Staging; |
| 4 | |
| 5 | use WPStaging\Framework\Adapter\Database; |
| 6 | use WPStaging\Framework\Adapter\DatabaseInterface; |
| 7 | use WPStaging\Framework\DI\FeatureServiceProvider; |
| 8 | use WPStaging\Framework\Job\Dto\JobDataDto; |
| 9 | use WPStaging\Framework\ThirdParty\MalCare; |
| 10 | use WPStaging\Staging\Ajax\Delete\PrepareDelete; |
| 11 | use WPStaging\Staging\Ajax\Delete; |
| 12 | use WPStaging\Staging\Ajax\Listing; |
| 13 | use WPStaging\Staging\Ajax\Delete\DeleteConfirm; |
| 14 | use WPStaging\Staging\Ajax\Repair; |
| 15 | use WPStaging\Staging\Ajax\Setup; |
| 16 | use WPStaging\Staging\Dto\Job\StagingSiteCreateDataDto; |
| 17 | use WPStaging\Staging\Dto\Job\StagingSiteDeleteDataDto; |
| 18 | use WPStaging\Staging\Jobs\StagingSiteCreate; |
| 19 | use WPStaging\Staging\Jobs\StagingSiteDelete; |
| 20 | use WPStaging\Staging\Tasks\StagingSite\CleanupStagingTablesTask; |
| 21 | |
| 22 | class StagingServiceProvider extends FeatureServiceProvider |
| 23 | { |
| 24 | protected function registerClasses() |
| 25 | { |
| 26 | $this->container->when(StagingSiteDelete::class) |
| 27 | ->needs(JobDataDto::class) |
| 28 | ->give(StagingSiteDeleteDataDto::class); |
| 29 | |
| 30 | $this->container->when(StagingSiteCreate::class) |
| 31 | ->needs(JobDataDto::class) |
| 32 | ->give(StagingSiteCreateDataDto::class); |
| 33 | |
| 34 | $this->container->when(CleanupStagingTablesTask::class) |
| 35 | ->needs(DatabaseInterface::class) |
| 36 | ->give(Database::class); |
| 37 | } |
| 38 | |
| 39 | protected function addHooks() |
| 40 | { |
| 41 | $this->enqueueAjaxListeners(); |
| 42 | } |
| 43 | |
| 44 | protected function enqueueAjaxListeners() |
| 45 | { |
| 46 | add_action('wp_ajax_wpstg--staging-site--prepare-delete', $this->container->callback(PrepareDelete::class, 'ajaxPrepare')); // phpcs:ignore WPStaging.Security.AuthorizationChecked |
| 47 | add_action('wp_ajax_wpstg--staging-site--delete-confirmation', $this->container->callback(DeleteConfirm::class, 'ajaxConfirm')); // phpcs:ignore WPStaging.Security.AuthorizationChecked |
| 48 | add_action('wp_ajax_wpstg--staging-site--delete', $this->container->callback(Delete::class, 'ajaxDelete')); // phpcs:ignore WPStaging.Security.AuthorizationChecked |
| 49 | add_action('wp_ajax_wpstg--staging-site--listing', $this->container->callback(Listing::class, 'ajaxListing')); // phpcs:ignore WPStaging.Security.AuthorizationChecked |
| 50 | add_action('wp_ajax_wpstg--staging-site--fix-option', $this->container->callback(Repair::class, 'ajaxFixOption')); // phpcs:ignore WPStaging.Security.AuthorizationChecked |
| 51 | add_action('wp_ajax_wpstg--staging-site--report-option', $this->container->callback(Repair::class, 'ajaxReportOption')); // phpcs:ignore WPStaging.Security.AuthorizationChecked |
| 52 | add_action('wpstg_cloning_complete', $this->container->callback(MalCare::class, 'maybeDisableMalCare')); // phpcs:ignore WPStaging.Security.AuthorizationChecked |
| 53 | $this->enqueueStagingAjaxListeners(); |
| 54 | } |
| 55 | |
| 56 | protected function enqueueStagingAjaxListeners() |
| 57 | { |
| 58 | if (!defined('WPSTG_NEW_STAGING')) { |
| 59 | return; |
| 60 | } |
| 61 | |
| 62 | add_action('wp_ajax_wpstg--staging-site--setup', $this->container->callback(Setup::class, 'ajaxSetup')); // phpcs:ignore WPStaging.Security.AuthorizationChecked |
| 63 | } |
| 64 | } |
| 65 |