PluginProbe ʕ •ᴥ•ʔ
WP STAGING – WordPress Backups, Restore, Migration & Clone / 4.11.1
WP STAGING – WordPress Backups, Restore, Migration & Clone v4.11.1
4.11.1 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 week ago NewsfeedRequester.php 1 week ago NewsfeedValidator.php 1 week 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