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 / Newsfeed / NewsfeedProvider.php
wp-staging / Framework / Newsfeed Last commit date
NewsfeedProvider.php 1 day ago NewsfeedRequester.php 1 day ago NewsfeedValidator.php 1 day ago
NewsfeedProvider.php
110 lines
1 <?php
2
3 namespace WPStaging\Framework\Newsfeed;
4
5 use WPStaging\Framework\Language\Language;
6
7
8
9
10
11
12
13 class NewsfeedProvider
14 {
15
16 private $language;
17
18
19 private $isDebug = false;
20
21
22 public function __construct(Language $language)
23 {
24 $this->language = $language;
25 }
26
27
28
29
30
31
32 public function getNewsfeedData()
33 {
34 $newsfeedUrls = $this->getNewsfeedUrls();
35 $languageCode = $this->language->getLocaleLanguageCode();
36
37 foreach ($newsfeedUrls as $newsfeedUrl) {
38 if (!$newsfeedUrl['show']) {
39 continue;
40 }
41
42 $url = $languageCode === 'de' ? $newsfeedUrl['de_url'] : $newsfeedUrl['en_url'];
43 $requester = new NewsfeedRequester($newsfeedUrl['id'] . '_' . $languageCode, $url);
44 $requester->setIsDebug($this->isDebug);
45
46 $data = $requester->returnData();
47 if ($data !== null) {
48 return $data;
49 }
50 }
51
52 return null;
53 }
54
55
56
57
58
59
60
61 public function setIsDebug(bool $isDebug)
62 {
63 $this->isDebug = $isDebug;
64 }
65
66
67
68
69
70
71
72 public function countProFeatures(array $data): int
73 {
74 $count = 0;
75
76 foreach ($data['highlights'] ?? [] as $item) {
77 if (!empty($item['pro_only'])) {
78 $count++;
79 }
80 }
81
82 foreach ($data['fixes'] ?? [] as $item) {
83 if (!empty($item['pro_only'])) {
84 $count++;
85 }
86 }
87
88 return $count;
89 }
90
91
92
93
94
95
96 private function getNewsfeedUrls(): array
97 {
98 $testFolder = $this->isDebug ? '/e2e-tests/' : '/';
99
100 return [
101 [
102 'id' => 'newsfeed',
103 'show' => true,
104 'de_url' => 'https://wp-staging.com/newsfeed' . $testFolder . 'newsfeed-de.json',
105 'en_url' => 'https://wp-staging.com/newsfeed' . $testFolder . 'newsfeed-en.json',
106 ],
107 ];
108 }
109 }
110