%PDF- %PDF-
| Direktori : /var/www/projetos/takthua.com.br/wp-content/plugins/ml-slider/lib/appsero/src/ |
| Current File : //var/www/projetos/takthua.com.br/wp-content/plugins/ml-slider/lib/appsero/src/Client.php |
<?php
namespace MSAppsero;
/**
* Appsero Client
*
* This class is necessary to set project data
*/
class Client
{
/**
* The client version
*
* @var string
*/
public $version = '1.2.0';
/**
* Hash identifier of the plugin
*
* @var string
*/
public $hash;
/**
* Name of the plugin
*
* @var string
*/
public $name;
/**
* The plugin/theme file path
* @example .../wp-content/plugins/test-slug/test-slug.php
*
* @var string
*/
public $file;
/**
* Main plugin file
* @example test-slug/test-slug.php
*
* @var string
*/
public $basename;
/**
* Slug of the plugin
* @example test-slug
*
* @var string
*/
public $slug;
/**
* The project version
*
* @var string
*/
public $project_version;
/**
* The project type
*
* @var string
*/
public $type;
/**
* textdomain
*
* @var string
*/
public $textdomain;
/**
* The Object of Insights Class
*
* @var object
*/
private $insights;
/**
* The Object of Updater Class
*
* @var object
*/
private $updater;
/**
* The Object of License Class
*
* @var object
*/
private $license;
/**
* Initialize the class
*
* @param string $hash hash of the plugin
* @param string $name readable name of the plugin
* @param string $file main plugin file path
*/
public function __construct($hash, $name, $file)
{
$this->hash = $hash;
$this->name = $name;
$this->file = $file;
$this->set_basename_and_slug();
}
/**
* Initialize insights class
*
* @return Appsero\Insights
*/
public function insights()
{
if (! class_exists(__NAMESPACE__ . '\Insights')) {
require_once __DIR__ . '/Insights.php';
}
// if already instantiated, return the cached one
if ($this->insights) {
return $this->insights;
}
$this->insights = new Insights($this);
return $this->insights;
}
/**
* Initialize plugin/theme updater
*
* @return Appsero\Updater
*/
public function updater()
{
if (! class_exists(__NAMESPACE__ . '\Updater')) {
require_once __DIR__ . '/Updater.php';
}
// if already instantiated, return the cached one
if ($this->updater) {
return $this->updater;
}
$this->updater = new Updater($this);
return $this->updater;
}
/**
* Initialize license checker
*
* @return Appsero\License
*/
public function license()
{
if (! class_exists(__NAMESPACE__ . '\License')) {
require_once __DIR__ . '/License.php';
}
// if already instantiated, return the cached one
if ($this->license) {
return $this->license;
}
$this->license = new License($this);
return $this->license;
}
/**
* API Endpoint
*
* @return string
*/
public function endpoint()
{
$endpoint = apply_filters('appsero_endpoint', 'https://api.appsero.com');
return trailingslashit($endpoint);
}
/**
* Set project basename, slug and version
*
* @return void
*/
protected function set_basename_and_slug()
{
if (strpos($this->file, WP_CONTENT_DIR . '/themes/') === false) {
$this->basename = plugin_basename($this->file);
list($this->slug, $mainfile) = explode('/', $this->basename);
require_once ABSPATH . 'wp-admin/includes/plugin.php';
$plugin_data = get_plugin_data($this->file);
$this->project_version = $plugin_data['Version'];
$this->type = 'plugin';
} else {
$this->basename = str_replace(WP_CONTENT_DIR . '/themes/', '', $this->file);
list($this->slug, $mainfile) = explode('/', $this->basename);
$theme = wp_get_theme($this->slug);
$this->project_version = $theme->version;
$this->type = 'theme';
}
$this->textdomain = $this->slug;
}
/**
* Send request to remote endpoint
*
* @param array $params
* @param string $route
*
* @return array|WP_Error Array of results including HTTP headers or WP_Error if the request failed.
*/
public function send_request($params, $route, $blocking = false)
{
$url = $this->endpoint() . $route;
$headers = array(
'user-agent' => 'Appsero/' . md5(esc_url(home_url())) . ';',
'Accept' => 'application/json',
);
$response = wp_remote_post($url, array(
'method' => 'POST',
'timeout' => 30,
'redirection' => 5,
'httpversion' => '1.0',
'blocking' => $blocking,
'headers' => $headers,
'body' => array_merge($params, array( 'client' => $this->version )),
'cookies' => array()
));
return $response;
}
/**
* Check if the current server is localhost
*
* @return boolean
*/
public function is_local_server()
{
$is_local = in_array($_SERVER['REMOTE_ADDR'], array( '127.0.0.1', '::1' ));
return apply_filters('appsero_is_local', $is_local);
}
/**
* Translate function _e()
*/
public function _etrans($text)
{
call_user_func('_e', $text, $this->textdomain);
}
/**
* Translate function __()
*/
public function __trans($text)
{
return call_user_func('__', $text, $this->textdomain);
}
/**
* Set project textdomain
*/
public function set_textdomain($textdomain)
{
$this->textdomain = $textdomain;
}
}