PluginProbe ʕ •ᴥ•ʔ
WP STAGING – WordPress Backup, Restore, Migration & Clone / 4.9.2
WP STAGING – WordPress Backup, Restore, Migration & Clone v4.9.2
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 / Backup / Entity / BackupMetadata.php
wp-staging / Backup / Entity Last commit date
AbstractBackupMetadata.php 5 months ago BackupMetadata.php 2 weeks ago FileBeingExtracted.php 10 months ago ListableBackup.php 4 months ago MultipartMetadata.php 1 year ago
BackupMetadata.php
92 lines
1 <?php
2
3 namespace WPStaging\Backup\Entity;
4
5 use WPStaging\Backup\BackupHeader;
6 use WPStaging\Core\WPStaging;
7 use WPStaging\Framework\SiteInfo;
8 use WPStaging\Framework\Utils\Times;
9 use WPStaging\Framework\Adapter\WpAdapter;
10 use WPStaging\Framework\Facades\Hooks;
11
12 /**
13 * Class BackupMetadata
14 *
15 * Initialize Backup Metadata with reasonable defaults.
16 *
17 * @package WPStaging\Backup\Entity
18 */
19 class BackupMetadata extends AbstractBackupMetadata
20 {
21 /**
22 * 1.0.4 was the last backup version in v1 format
23 * Lets bump it and use that for creating backup when filter is used for v1 format!
24 * @var string
25 */
26 const LAST_BACKUP_VERSION_V1 = '1.0.5';
27
28 /**
29 * BackupMetadata constructor.
30 *
31 * Sets reasonable defaults.
32 */
33 public function __construct()
34 {
35 $time = WPStaging::make(Times::class);
36 /** @var SiteInfo */
37 $siteInfo = WPStaging::make(SiteInfo::class);
38 $wpAdapter = WPStaging::make(WpAdapter::class);
39
40 $this->setWpstgVersion(WPStaging::getVersion());
41 $this->setBackupVersion($this->getDefaultVersion());
42 $this->setSiteUrl(get_option('siteurl'));
43 $this->setHomeUrl(get_option('home'));
44 $this->setAbsPath(ABSPATH);
45 $this->setBlogId(get_current_blog_id());
46 $this->setNetworkId($wpAdapter->getCurrentNetworkId());
47 $this->setDateCreated((string)time());
48 $this->setDateCreatedTimezone($time->getSiteTimezoneString());
49 $this->setBackupType(is_multisite() ? self::BACKUP_TYPE_MULTISITE : self::BACKUP_TYPE_SINGLE);
50 $this->setPhpShortOpenTags($siteInfo->isPhpShortTagsEnabled());
51 $this->setPhpArchitecture($siteInfo->getPhpArchitecture());
52 $this->setOsArchitecture($siteInfo->getOsArchitecture());
53
54 $this->setWpBakeryActive($siteInfo->isWpBakeryActive());
55 $this->setIsJetpackActive($siteInfo->isJetpackActive());
56 $this->setIsCreatedOnWordPressCom($siteInfo->isHostedOnWordPressCom());
57 $this->setHostingType($siteInfo->getHostingType());
58
59 $this->setSites(null);
60 $this->setSubdomainInstall(is_multisite() && is_subdomain_install());
61
62 $uploadDir = wp_upload_dir(null, false, true);
63
64 if (!is_array($uploadDir)) {
65 return;
66 }
67
68 $this->setUploadsPath(array_key_exists('basedir', $uploadDir) ? $uploadDir['basedir'] : '');
69 $this->setUploadsUrl(array_key_exists('baseurl', $uploadDir) ? $uploadDir['baseurl'] : '');
70 }
71
72 public function getIsBackupFormatV1(bool $useFilter = true): bool
73 {
74 $result = version_compare($this->getBackupVersion(), BackupHeader::MIN_BACKUP_VERSION, '<');
75 if (!$useFilter) {
76 return $result;
77 }
78
79 return Hooks::applyFilters(self::FILTER_BACKUP_FORMAT_V1, $result);
80 }
81
82 /**
83 * @return string
84 */
85 private function getDefaultVersion(): string
86 {
87 $isBackupFormatV1 = Hooks::applyFilters(self::FILTER_BACKUP_FORMAT_V1, false);
88
89 return $isBackupFormatV1 ? self::LAST_BACKUP_VERSION_V1 : BackupHeader::BACKUP_VERSION;
90 }
91 }
92