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 / Staging / Traits / StagingSiteGetterTrait.php
wp-staging / Staging / Traits Last commit date
StagingDatabaseDtoTrait.php 1 year ago StagingNetworkDtoTrait.php 2 months ago StagingOperationDtoTrait.php 2 weeks ago StagingSiteGetterTrait.php 2 months ago WithAdvanceStagingOptions.php 5 months ago WithDataAdjustmentTasks.php 9 months ago WithStagingDatabase.php 2 months ago WithStagingEnginePreference.php 2 weeks ago WithStagingRequirementLogs.php 2 weeks ago WithStagingSiteDto.php 1 year ago
StagingSiteGetterTrait.php
59 lines
1 <?php
2
3 namespace WPStaging\Staging\Traits;
4
5 use Exception;
6 use WPStaging\Core\WPStaging;
7 use WPStaging\Staging\Sites;
8
9 /**
10 * Trait StagingSiteGetterTrait
11 * This trait is used to get staging site by clone name or staging site id. It is used in multiple classes to avoid code duplication.
12 */
13 trait StagingSiteGetterTrait
14 {
15 /**
16 * Return clone id after validating the staging site by id or name. If the staging site does not exist, an exception will be thrown.
17 *
18 * @param array $options
19 * @return string
20 */
21 protected function validateStagingSiteByIdOrName(array $options): string
22 {
23 // Clone ID or Clone Name is required
24 if (empty($options['id']) && empty($options['name'])) {
25 throw new Exception('The id or name parameter is required. Use: wp wpstg staging-site-reset id=<staging-site-id> or wp wpstg staging-site-reset name=<staging-site-name>');
26 }
27
28 if (!empty($options['id'])) {
29 $cloneId = sanitize_text_field($options['id']);
30 /** @var Sites $stagingSites */
31 $stagingSites = WPStaging::make(Sites::class);
32
33 try {
34 $stagingSites->getStagingSiteDtoByCloneId($cloneId);
35 } catch (Exception $e) {
36 throw new Exception("Staging site with ID '{$cloneId}' does not exist.");
37 }
38
39 return $cloneId;
40 }
41
42 if (!empty($options['name'])) {
43 $cloneName = sanitize_text_field($options['name']);
44 /** @var Sites $stagingSites */
45 $stagingSites = WPStaging::make(Sites::class);
46
47 try {
48 $stagingSite = $stagingSites->getStagingSiteDtoByCloneName($cloneName);
49 } catch (Exception $e) {
50 throw new Exception("Staging site with name '{$cloneName}' does not exist.");
51 }
52
53 return $stagingSite->getCloneId();
54 }
55
56 throw new Exception('Unable to determine staging site ID from provided options.');
57 }
58 }
59