PluginProbe ʕ •ᴥ•ʔ
Advanced Access Manager – Access Governance for WordPress / trunk
Advanced Access Manager – Access Governance for WordPress vtrunk
6.8.4 6.8.5 6.9.0 6.9.1 6.9.10 6.9.11 6.9.12 6.9.13 6.9.14 6.9.15 6.9.16 6.9.17 6.9.18 6.9.19 6.9.2 6.9.20 6.9.21 6.9.22 6.9.23 6.9.24 6.9.25 6.9.26 6.9.27 6.9.28 6.9.29 6.9.3 6.9.30 6.9.31 6.9.32 6.9.33 6.9.34 6.9.35 6.9.36 6.9.37 6.9.38 6.9.39 6.9.4 6.9.41 6.9.42 6.9.43 6.9.44 6.9.45 6.9.46 6.9.47 6.9.48 6.9.49 6.9.5 6.9.51 6.9.6 6.9.7 6.9.8 6.9.9 7.0.0 7.0.0-alpha.6 7.0.0-alpha.7 7.0.0-beta.1 7.0.0-rc1 7.0.0-rc2 7.0.0-rc3 7.0.1 7.0.10 7.0.11 7.0.2 7.0.3 7.0.4 7.0.5 7.0.6 7.0.7 7.0.8 7.0.9 7.1.0 7.1.1 trunk 3.0 4.0 4.0.1 4.1 4.2 4.3 4.4 4.4.1 4.5 4.6 4.6.1 4.6.2 4.7 4.7.1 4.7.2 4.7.5 4.7.6 4.8 4.8.1 4.9 4.9.1 4.9.2 4.9.3 4.9.4 4.9.5 4.9.5.1 4.9.5.2 5.0 5.0.1 5.0.2 5.0.3 5.0.4 5.0.5 5.0.6 5.0.7 5.0.8 5.1 5.1.1 5.10 5.11 5.2 5.2.1 5.2.5 5.2.6 5.2.7 5.3 5.3.1 5.3.2 5.3.3 5.3.4 5.3.5 5.4 5.4.1 5.4.2 5.4.3 5.4.3.1 5.4.3.2 5.5 5.5.1 5.5.2 5.6 5.6.1 5.6.1.1 5.7 5.7.1 5.7.2 5.7.3 5.8 5.8.1 5.8.2 5.8.3 5.9 5.9.1 5.9.1.1 5.9.2 5.9.2.1 5.9.3 5.9.4 5.9.5 5.9.6 5.9.6.1 5.9.6.2 5.9.6.3 5.9.7 5.9.7.1 5.9.7.2 5.9.7.3 5.9.8 5.9.8.1 5.9.9 5.9.9.1 6.0.0 6.0.1 6.0.2 6.0.3 6.0.4 6.0.5 6.1.0 6.1.1 6.2.0 6.2.1 6.2.2 6.3.0 6.3.1 6.3.2 6.3.3 6.4.0 6.4.1 6.4.2 6.4.3 6.5.0 6.5.1 6.5.2 6.5.3 6.5.4 6.6.0 6.6.1 6.6.2 6.6.3 6.6.4 6.7.0 6.7.1 6.7.2 6.7.3 6.7.4 6.7.5 6.7.6 6.7.7 6.7.8 6.7.9 6.8.0 6.8.1 6.8.2 6.8.3
advanced-access-manager / application / Addon / Repository.php
advanced-access-manager / application / Addon Last commit date
Repository.php 8 months ago
Repository.php
199 lines
1 <?php
2
3 /**
4 * ======================================================================
5 * LICENSE: This file is subject to the terms and conditions defined in *
6 * file 'license.txt', which is part of this source code package. *
7 * ======================================================================
8 */
9
10 /**
11 * Addon repository
12 *
13 * @package AAM
14 * @version 7.0.0
15 */
16 class AAM_Addon_Repository
17 {
18
19 /**
20 * Single instance of itself
21 *
22 * @var object
23 * @access private
24 *
25 * @version 7.0.0
26 */
27 private static $_instance = null;
28
29 /**
30 * The latest know premium release
31 *
32 * Note! This is the latest version at the time of AAM publishing
33 *
34 * @version 7.0.10
35 */
36 const LATEST_PREMIUM_VERSION = '7.0.7';
37
38 /**
39 * Constructor
40 *
41 * @return void
42 * @access protected
43 *
44 * @version 7.0.0
45 */
46 protected function __construct()
47 {
48 if (file_exists(ABSPATH . 'wp-admin/includes/plugin.php')) {
49 require_once ABSPATH . 'wp-admin/includes/plugin.php';
50 }
51 }
52
53 /**
54 * Get premium data
55 *
56 * @return array
57 * @access public
58 *
59 * @version 7.0.0
60 */
61 public function get_premium_data()
62 {
63 // Determining if there is newer version
64 $slug = 'aam-complete-package';
65 $version = $this->get_plugin_version("{$slug}/bootstrap.php");
66 $has_update = $this->has_plugin_update("{$slug}/bootstrap.php", $version);
67
68 return array(
69 'title' => 'Advanced Access Manager - Premium Add-On',
70 'version' => $version,
71 'hasUpdate' => $has_update,
72 'license' => $this->get_premium_license_key($slug),
73 'description' => __('The complete list of all premium features in one package. All the future features will be available for download for no additional cost as long as the subscription stays active.', 'advanced-access-manager'),
74 'url' => 'https://aamportal.com/premium?ref=plugin'
75 );
76 }
77
78 /**
79 * Get list of all registered licenses
80 *
81 * @return string|null
82 * @access public
83 *
84 * @version 7.0.0
85 */
86 public function get_premium_license_key()
87 {
88 $result = null;
89
90 // New way to handle the licensing
91 if (defined('AAM_COMPLETE_PACKAGE_LICENSE')) {
92 $result = AAM_COMPLETE_PACKAGE_LICENSE;
93 }
94
95 return $result;
96 }
97
98 /**
99 * Check if plugin has new version available
100 *
101 * @param string $id
102 * @param string $current_version
103 *
104 * @return boolean
105 * @access protected
106 *
107 * @version 7.0.0
108 */
109 protected function has_plugin_update($id, $current_version)
110 {
111 $has_update = false;
112 $plugins = get_site_transient('update_plugins');
113
114 if (isset($plugins->response) && is_array($plugins->response)) {
115 $has_update = array_key_exists($id, $plugins->response);
116 }
117
118 // Also check if current version lower than known
119 if ($has_update === false && !empty($current_version)) {
120 $has_update = version_compare(
121 $current_version, self::LATEST_PREMIUM_VERSION
122 ) === -1;
123 }
124
125 return $has_update;
126 }
127
128 /**
129 * Get plugin version
130 *
131 * @param string $plugin
132 *
133 * @return string|null
134 * @access protected
135 *
136 * @version 7.0.0
137 */
138 protected function get_plugin_version($plugin)
139 {
140 $data = $this->get_plugin_data($plugin);
141 $version = (isset($data['Version']) ? $data['Version'] : null);
142
143 return (!empty($version) ? $version : null);
144 }
145
146 /**
147 * Get plugin details from the WP core
148 *
149 * @param string $plugin
150 *
151 * @return array|null
152 * @access protected
153 *
154 * @version 7.0.0
155 */
156 protected function get_plugin_data($plugin)
157 {
158 $filename = WP_PLUGIN_DIR . '/' . $plugin;
159
160 if (function_exists('get_plugin_data') && file_exists($filename)) {
161 $data = get_plugin_data($filename);
162 } else {
163 $data = null;
164 }
165
166 return $data;
167 }
168
169 /**
170 * Bootstrap the object
171 *
172 * @return AAM_Addon_Repository
173 * @access public
174 *
175 * @version 7.0.0
176 */
177 public static function bootstrap()
178 {
179 if (is_null(self::$_instance)) {
180 self::$_instance = new self;
181 }
182
183 return self::$_instance;
184 }
185
186 /**
187 * Get single instance of itself
188 *
189 * @return AAM_Addon_Repository
190 * @access public
191 *
192 * @version 7.0.0
193 */
194 public static function get_instance()
195 {
196 return self::bootstrap();
197 }
198
199 }