PluginProbe ʕ •ᴥ•ʔ
WP STAGING – WordPress Backups, Restore, Migration & Clone / 4.11.1
WP STAGING – WordPress Backups, Restore, Migration & Clone v4.11.1
4.11.2 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 / Notices / OutdatedWpStagingNotice.php
wp-staging / Framework / Notices Last commit date
BackupPluginsNotice.php 1 week ago BooleanNotice.php 1 week ago CliIntegrationNotice.php 1 week ago DisabledItemsNotice.php 1 week ago DismissNotice.php 1 week ago NextGenEngineNotice.php 1 week ago Notices.php 1 week ago NoticesHandler.php 1 week ago ObjectCacheNotice.php 1 week ago OutdatedWpStagingNotice.php 1 week ago WarningsNotice.php 1 week ago WpVersionCompatNotice.php 1 week ago
OutdatedWpStagingNotice.php
103 lines
1 <?php
2
3 namespace WPStaging\Framework\Notices;
4
5 use WPStaging\Core\WPStaging;
6 use Countable;
7
8
9
10
11
12
13
14 class OutdatedWpStagingNotice
15 {
16
17
18
19 private $currentWpstgVersion = null;
20
21
22
23
24 private $latestWpstgVersion = null;
25
26 public function showNotice($viewsNoticesPath)
27 {
28
29 if (!Notices::SHOW_ALL_NOTICES && (WPStaging::isPro() || !$this->isOutdatedWpStagingVersion())) {
30 return;
31 }
32
33 require "{$viewsNoticesPath}outdated-wp-staging-version.php";
34 }
35
36
37
38
39 public function getCurrentWpstgVersion()
40 {
41 if ($this->currentWpstgVersion === null) {
42 $this->currentWpstgVersion = WPStaging::getVersion();
43 }
44
45 return $this->currentWpstgVersion;
46 }
47
48
49
50
51 public function getLatestWpstgVersion()
52 {
53 if ($this->latestWpstgVersion === null) {
54 $this->latestWpstgVersion = $this->getNewestVersionToUpdateBySlug('wp-staging');
55 }
56
57 return $this->latestWpstgVersion;
58 }
59
60
61
62
63
64 private function getNewestVersionToUpdateBySlug($slug)
65 {
66 $plugins = get_site_transient('update_plugins');
67 if (!is_object($plugins)) {
68 return null;
69 }
70
71 if (!property_exists($plugins, 'response')) {
72 return null;
73 }
74
75 $plugins = $plugins->response;
76
77 if (empty($plugins) || (!is_array($plugins) || (!is_array($plugins) && $plugins instanceof Countable === false))) {
78 return null;
79 }
80
81 foreach ($plugins as $plugin) {
82 if ($plugin->slug === $slug) {
83 return $plugin->new_version;
84 }
85 }
86
87 return null;
88 }
89
90
91
92
93 private function isOutdatedWpStagingVersion()
94 {
95
96 if ($this->getLatestWpstgVersion() === null) {
97 return false;
98 }
99
100 return version_compare($this->getLatestWpstgVersion(), $this->getCurrentWpstgVersion(), '>') ? true : false;
101 }
102 }
103