PluginProbe ʕ •ᴥ•ʔ
WP STAGING – WordPress Backup, Restore, Migration & Clone / 4.4.0
WP STAGING – WordPress Backup, Restore, Migration & Clone v4.4.0
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 / Backup / Task / RestoreTask.php
wp-staging / Backup / Task Last commit date
Tasks 6 months ago BackupTask.php 1 year ago FileBackupTask.php 6 months ago FileRestoreTask.php 1 year ago RestoreTask.php 1 year ago
RestoreTask.php
67 lines
1 <?php
2
3 namespace WPStaging\Backup\Task;
4
5 use WPStaging\Backup\Dto\Job\JobRestoreDataDto;
6 use WPStaging\Backup\Task\Tasks\JobRestore\ExtractFilesTask;
7 use WPStaging\Framework\Job\Dto\JobDataDto;
8 use WPStaging\Framework\Facades\Hooks;
9 use WPStaging\Framework\Job\Dto\TaskResponseDto;
10 use WPStaging\Framework\Job\Task\AbstractTask;
11
12 abstract class RestoreTask extends AbstractTask
13 {
14 /** @var string */
15 const FILTER_EXCLUDE_BACKUP_PARTS = 'wpstg.backup.restore.exclude_backup_parts';
16
17 /** @var JobRestoreDataDto */
18 protected $jobDataDto;
19
20 public function setJobDataDto(JobDataDto $jobDataDto)
21 {
22 /** @var JobRestoreDataDto $jobDataDto */
23 if (
24 $jobDataDto->getBackupMetadata()->getIsExportingDatabase()
25 && !$jobDataDto->getBackupMetadata()->getIsExportingMuPlugins()
26 && !$jobDataDto->getBackupMetadata()->getIsExportingOtherWpContentFiles()
27 && !$jobDataDto->getBackupMetadata()->getIsExportingPlugins()
28 && !$jobDataDto->getBackupMetadata()->getIsExportingThemes()
29 && !$jobDataDto->getBackupMetadata()->getIsExportingUploads()
30 && !$jobDataDto->getBackupMetadata()->getIsExportingOtherWpRootFiles()
31 ) {
32 $jobDataDto->setDatabaseOnlyBackup(true);
33 }
34
35 parent::setJobDataDto($jobDataDto);
36 }
37
38 protected function addLogMessageToResponse(TaskResponseDto $response)
39 {
40 /**
41 * If this backup contains only a database, let's not display log entries
42 * for file-related tasks, as they expose internal behavior of the backup
43 * feature that are not relevant to the user.
44 */
45 if (!$this->jobDataDto->getDatabaseOnlyBackup()) {
46 $response->addMessage($this->logger->getLastLogMsg());
47 return;
48 }
49
50 if (
51 !$this instanceof ExtractFilesTask
52 ) {
53 $response->addMessage($this->logger->getLastLogMsg());
54 }
55 }
56
57 protected function isBackupPartSkipped(string $partName): bool
58 {
59 $excludedParts = Hooks::applyFilters(self::FILTER_EXCLUDE_BACKUP_PARTS, []);
60 if (empty($excludedParts)) {
61 return false;
62 }
63
64 return in_array($partName, $excludedParts);
65 }
66 }
67