PluginProbe ʕ •ᴥ•ʔ
Backup Migration / 1.4.9
Backup Migration v1.4.9
2.1.6 2.1.5.2 trunk 1.3.0 1.3.1 1.3.2 1.3.3 1.3.4 1.3.5 1.3.6 1.3.7 1.3.8 1.3.9 1.4.0 1.4.1 1.4.2 1.4.3 1.4.4 1.4.5 1.4.6 1.4.6.1 1.4.7 1.4.8 1.4.9 1.4.9.1 2.0.0 2.1.0 2.1.1 2.1.2 2.1.3 2.1.4 2.1.5 2.1.5.1
backup-backup / analyst / src / Collector.php
backup-backup / analyst / src Last commit date
Account 11 months ago Cache 11 months ago Contracts 11 months ago Core 11 months ago Http 11 months ago Notices 11 months ago Analyst.php 11 months ago ApiRequestor.php 11 months ago ApiResponse.php 11 months ago Collector.php 11 months ago Mutator.php 11 months ago helpers.php 11 months ago
Collector.php
222 lines
1 <?php
2
3 namespace Analyst;
4
5 use Analyst\Contracts\AnalystContract;
6
7 /**
8 * Class Collector is a set of getters
9 * to retrieve some data from wp site
10 */
11 class Collector
12 {
13 /**
14 * @var AnalystContract
15 */
16 protected $sdk;
17
18 /**
19 * @var \WP_User
20 */
21 protected $user;
22
23 public function __construct(AnalystContract $sdk)
24 {
25 $this->sdk = $sdk;
26 }
27
28 /**
29 * Load current user into memory
30 */
31 public function loadCurrentUser()
32 {
33 $this->user = wp_get_current_user();
34 }
35
36 /**
37 * Get site url
38 *
39 * @return string
40 */
41 public function getSiteUrl()
42 {
43 return get_option('siteurl');
44 }
45
46 /**
47 * Get current user email
48 *
49 * @return string
50 */
51 public function getCurrentUserEmail()
52 {
53 return $this->user->user_email;
54 }
55
56 /**
57 * Get's email from general settings
58 *
59 * @return string
60 */
61 public function getGeneralEmailAddress()
62 {
63 return get_option('admin_email');
64 }
65
66 /**
67 * Is this user administrator
68 *
69 * @return bool
70 */
71 public function isUserAdministrator()
72 {
73 return in_array('administrator', $this->user->roles);
74 }
75
76 /**
77 * User name
78 *
79 * @return string
80 */
81 public function getCurrentUserName()
82 {
83 return $this->user ? $this->user->user_nicename : 'unknown';
84 }
85
86 /**
87 * WP version
88 *
89 * @return string
90 */
91 public function getWordPressVersion()
92 {
93 global $wp_version;
94
95 return $wp_version;
96 }
97
98 /**
99 * PHP version
100 *
101 * @return string
102 */
103 public function getPHPVersion()
104 {
105 return phpversion();
106 }
107
108 /**
109 * Resolves plugin information
110 *
111 * @param string $path Absolute path to plugin
112 * @return array
113 */
114 public function resolvePluginData($path)
115 {
116 if( !function_exists('get_plugin_data') ){
117 require_once( ABSPATH . 'wp-admin/includes/plugin.php' );
118 }
119
120 return get_plugin_data($path);
121 }
122
123 /**
124 * Get plugin name by path
125 *
126 * @param $path
127 * @return string
128 */
129 public function getPluginName($path)
130 {
131 $data = $this->resolvePluginData($path);
132
133 return $data['Name'];
134 }
135
136 /**
137 * Get plugin version
138 *
139 * @param $path
140 * @return string
141 */
142 public function getPluginVersion($path)
143 {
144 $data = $this->resolvePluginData($path);
145
146 return $data['Version'] ? $data['Version'] : null;
147 }
148
149 /**
150 * Get server ip
151 *
152 * @return string
153 */
154 public function getServerIp()
155 {
156 return sanitize_text_field($_SERVER['SERVER_ADDR']);
157 }
158
159 /**
160 * @return string
161 */
162 public function getSDKVersion()
163 {
164 return $this->sdk->version();
165 }
166
167 /**
168 * @return string
169 */
170 public function getMysqlVersion()
171 {
172 $conn = mysqli_connect(DB_HOST, DB_USER, DB_PASSWORD, DB_NAME);
173
174 if ($conn) {
175 $version = mysqli_get_server_info($conn);
176 } else {
177 return 'unknown';
178 }
179
180 return $version ? $version : 'unknown';
181 }
182
183 /**
184 * @return string
185 */
186 public function getSiteLanguage()
187 {
188 return get_locale();
189 }
190
191
192 /**
193 * Current WP theme
194 *
195 * @return false|string
196 */
197 public function getCurrentThemeName()
198 {
199 return wp_get_theme()->get('Name');
200 }
201
202 /**
203 * Get active plugins list
204 *
205 * @return array
206 */
207 public function getActivePluginsList()
208 {
209 if (!function_exists('get_plugins')) {
210 require_once ABSPATH . 'wp-admin/includes/plugin.php';
211 }
212
213 $allPlugins = get_plugins();
214
215 $activePluginsNames = array_map(function ($path) use ($allPlugins) {
216 return $allPlugins[$path]['Name'];
217 }, get_option('active_plugins'));
218
219 return $activePluginsNames;
220 }
221 }
222