Create New Item
Item Type
File
Folder
Item Name
Search file in folder and subfolders...
Are you sure want to rename?
File Manager
/
wp-content
/
plugins
/
modern-admin
:
wp_autoupdate.php
Advanced Search
Upload
New Item
Settings
Back
Back Up
Advanced Editor
Save
<?php class modern_admin_auto_update { /** * The plugin current version * @var string */ public $current_version; /** * The plugin remote update path * @var string */ public $update_path; /** * Plugin Slug (plugin_directory/plugin_file.php) * @var string */ public $plugin_slug; /** * Plugin name (plugin_file) * @var string */ public $slug; public $license; /** * Initialize a new instance of the WordPress Auto-Update class * @param string $current_version * @param string $update_path * @param string $plugin_slug */ function __construct($license,$current_version, $update_path, $plugin_slug) { // Set the class public variables $this->license = $license; $this->current_version = $current_version; $this->update_path = $update_path; $this->plugin_slug = $plugin_slug; list ($t1, $t2) = explode('/', $plugin_slug); $this->slug = str_replace('.php', '', $t2); // define the alternative API for updating checking add_filter('pre_set_site_transient_update_plugins', array(&$this, 'check_update')); // Define the alternative response for information checking add_filter('plugins_api', array(&$this, 'check_info'), 10, 3); } /** * Add our self-hosted autoupdate plugin to the filter transient * * @param $transient * @return object $ transient */ public function check_update($transient) { if (empty($transient->checked)) { return $transient; } // Get the remote version $remote_version = $this->getRemote_version(); // If a newer version is available, add the update if (version_compare($this->current_version, $remote_version['version'], '<')) { $obj = new stdClass(); $obj->slug = $this->slug; $obj->new_version = $remote_version['version']; $obj->url = $this->update_path; $obj->package = $remote_version['link']; $transient->response[$this->plugin_slug] = $obj; } return $transient; } /** * Add our self-hosted description to the filter * * @param boolean $false * @param array $action * @param object $arg * @return bool|object */ public function check_info($false, $action, $arg) { if (isset($arg->slug) && $arg->slug === $this->slug) { $information = $this->getRemote_information(); return $information; } return false; } /** * Return the remote version * @return string $remote_version */ public function getRemote_version() { global $wp_version; $args = array( 'slug' => $this->slug, 'key'=>$this->license, 'url' =>home_url() ); $request = wp_remote_post($this->update_path, array('body' => array('action' => 'version','request' => serialize($args)),'user-agent' => 'WordPress/' . $wp_version . '; ' . home_url())); if (!is_wp_error($request) || wp_remote_retrieve_response_code($request) === 200) { return unserialize($request['body']); } return false; } /** * Get information about the remote version * @return bool|object */ public function getRemote_information() { global $wp_version; $args = array( 'slug' => $this->slug, 'key'=>$this->license, 'url' =>home_url() ); $request = wp_remote_post($this->update_path, array('body' => array('action' => 'info','request' => serialize($args)),'user-agent' => 'WordPress/' . $wp_version . '; ' . home_url())); if (!is_wp_error($request) || wp_remote_retrieve_response_code($request) === 200) { return unserialize($request['body']); } return false; } }