first commit
This commit is contained in:
221
wp-content/plugins/copy-delete-posts/analyst/src/Collector.php
Normal file
221
wp-content/plugins/copy-delete-posts/analyst/src/Collector.php
Normal file
@@ -0,0 +1,221 @@
|
||||
<?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;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user