%PDF- %PDF-
Direktori : /home/dopla/www/wp-content/plugins/ml-slider/lib/appsero/src/ |
Current File : /home/dopla/www/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; } }