File Editor
Directories:
.. (Back)
Account
Cache
Contracts
Core
Http
Notices
Files:
Analyst.php
ApiRequestor.php
ApiResponse.php
Collector.php
Mutator.php
helpers.php
Create New File
Create
Edit File: Collector.php
<?php namespace Analyst; use Analyst\Contracts\AnalystContract; /** * Class Collector is a set of getters * to retrieve some data from wp site */ class Collector { /** * @var AnalystContract */ protected $sdk; /** * @var \WP_User */ protected $user; public function __construct(AnalystContract $sdk) { $this->sdk = $sdk; } /** * Load current user into memory */ public function loadCurrentUser() { $this->user = wp_get_current_user(); } /** * Get site url * * @return string */ public function getSiteUrl() { return get_option('siteurl'); } /** * Get current user email * * @return string */ public function getCurrentUserEmail() { return $this->user->user_email; } /** * Get's email from general settings * * @return string */ public function getGeneralEmailAddress() { return get_option('admin_email'); } /** * Is this user administrator * * @return bool */ public function isUserAdministrator() { return in_array('administrator', $this->user->roles); } /** * User name * * @return string */ public function getCurrentUserName() { return $this->user ? $this->user->user_nicename : 'unknown'; } /** * WP version * * @return string */ public function getWordPressVersion() { global $wp_version; return $wp_version; } /** * PHP version * * @return string */ public function getPHPVersion() { return phpversion(); } /** * Resolves plugin information * * @param string $path Absolute path to plugin * @return array */ public function resolvePluginData($path) { if( !function_exists('get_plugin_data') ){ require_once( ABSPATH . 'wp-admin/includes/plugin.php' ); } return get_plugin_data($path); } /** * Get plugin name by path * * @param $path * @return string */ public function getPluginName($path) { $data = $this->resolvePluginData($path); return $data['Name']; } /** * Get plugin version * * @param $path * @return string */ public function getPluginVersion($path) { $data = $this->resolvePluginData($path); return $data['Version'] ? $data['Version'] : null; } /** * Get server ip * * @return string */ public function getServerIp() { return sanitize_text_field($_SERVER['SERVER_ADDR']); } /** * @return string */ public function getSDKVersion() { return $this->sdk->version(); } /** * @return string */ public function getMysqlVersion() { $conn = mysqli_connect(DB_HOST, DB_USER, DB_PASSWORD, DB_NAME); if ($conn) { $version = mysqli_get_server_info($conn); } else { return 'unknown'; } return $version ? $version : 'unknown'; } /** * @return string */ public function getSiteLanguage() { return get_locale(); } /** * Current WP theme * * @return false|string */ public function getCurrentThemeName() { return wp_get_theme()->get('Name'); } /** * Get active plugins list * * @return array */ public function getActivePluginsList() { if (!function_exists('get_plugins')) { require_once ABSPATH . 'wp-admin/includes/plugin.php'; } $allPlugins = get_plugins(); $activePluginsNames = array_map(function ($path) use ($allPlugins) { return $allPlugins[$path]['Name']; }, get_option('active_plugins')); return $activePluginsNames; } }
Save Changes
Rename File
Rename