PluginProbe ʕ •ᴥ•ʔ
WP STAGING – WordPress Backups, Restore, Migration & Clone / 4.11.0
WP STAGING – WordPress Backups, Restore, Migration & Clone v4.11.0
4.11.0 4.10.0 4.9.5 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 / Framework / Traits / HttpRequestTrait.php
wp-staging / Framework / Traits Last commit date
ApplyFiltersTrait.php 1 day ago ArrayableTrait.php 1 day ago BatchSizeCalculateTrait.php 1 day ago BearerTokenTrait.php 1 day ago BenchmarkTrait.php 1 day ago BooleanTransientTrait.php 1 day ago DatabaseSearchReplaceTrait.php 1 day ago DbRowsGeneratorTrait.php 1 day ago DebugLogTrait.php 1 day ago DeveloperTimerTrait.php 1 day ago EndOfLinePlaceholderTrait.php 1 day ago EventLoggerTrait.php 1 day ago FileScanToCacheTrait.php 1 day ago FormatTrait.php 1 day ago HttpRequestTrait.php 1 day ago HydrateTrait.php 1 day ago I18nTrait.php 1 day ago IpResolverTrait.php 1 day ago JobResponseTrait.php 1 day ago MaintenanceTrait.php 7 months ago MemoryExhaustTrait.php 1 day ago MySQLRowsGeneratorTrait.php 1 day ago NoticesTrait.php 1 day ago PagesTrait.php 1 day ago PropertyConstructor.php 1 day ago RenameTmpDirectoryTrait.php 1 day ago ResourceTrait.php 1 day ago RestRequestTrait.php 1 day ago RestoreFileExclusionTrait.php 1 day ago SafeFileInfoTrait.php 1 day ago SerializeTrait.php 1 day ago SetTimeLimitTrait.php 1 day ago SlashTrait.php 1 day ago SqlCommentTrait.php 1 day ago TablePrefixValidator.php 5 months ago UrlTrait.php 1 day ago ValueGetterTrait.php 1 day ago WindowsOsTrait.php 1 day ago
HttpRequestTrait.php
67 lines
1 <?php
2
3 namespace WPStaging\Framework\Traits;
4
5 use WPStaging\Backup\Exceptions\StorageException;
6
7 trait HttpRequestTrait
8 {
9
10
11
12
13
14
15
16
17
18
19 protected function getRequestBody(string $url, array $args = [], bool $decodeBody = true)
20 {
21 $response = $this->getRemoteRequest($url, $args);
22 $body = wp_remote_retrieve_body($response);
23 if ($decodeBody) {
24 return json_decode($body, true);
25 }
26
27 return $body;
28 }
29
30
31
32
33
34
35
36
37
38 protected function getRemoteRequest(string $url, array $args = []): array
39 {
40 $defaults = [
41 'timeout' => 40,
42 'httpversion' => '1.0',
43 'sslverify' => false,
44 'method' => 'GET',
45 ];
46 $args = wp_parse_args($args, $defaults);
47 $response = wp_remote_request($url, $args);
48 $responseCode = wp_remote_retrieve_response_code($response);
49
50 if (is_wp_error($response) || (!in_array($responseCode, [200, 201, 202, 204, 206, 302, 308]))) {
51 $errorMessage = is_wp_error($response) ? $response->get_error_message() : wp_remote_retrieve_body($response);
52
53 $xml = @simplexml_load_string($errorMessage);
54 if ($xml !== false) {
55 $errorMessage = (string)$xml->Message ?? (string)$xml->message ?? $errorMessage;
56 if (!empty((string)$xml->Code) || !empty((string)$xml->code)) {
57 $errorMessage .= " (Code: " . ((string)$xml->Code ?? (string)$xml->code) . ")";
58 }
59 }
60
61 throw new StorageException("Error Message: $errorMessage; Error Code: $responseCode; Url: $url", (int)$responseCode);
62 }
63
64 return $response;
65 }
66 }
67