File: D:/HostingSpaces/Velosophe/dev.abloc.cc/wwwroot/app/plugins/universal_nonshipping/wp_autoupdate.php
<?php
class wp_auto_update_fietskoeriers {
public $current_version;
public $update_path;
public $plugin_slug;
public $slug;
function __construct( $current_version, $update_path, $plugin_slug ) {
// Set the class public variables
$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);
}
public function check_update( $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, '<' ) ) {
$obj = new stdClass();
$obj->slug = $this->slug;
$obj->new_version = $remote_version;
$obj->url = $this->update_path;
$obj->package = $this->update_path;
$transient->response[$this->plugin_slug] = $obj;
}
return $transient;
}
public function check_info( $false, $action, $arg ) {
if( $arg->slug === $this->slug ) {
$information = $this->getRemote_information();
return $information;
}
return false;
}
public function getRemote_version() {
$request = wp_remote_post( $this->update_path, array( 'body' => array( 'action' => 'version' ) ) );
if( ! is_wp_error( $request ) || wp_remote_retrieve_response_code( $request ) === 200 ) {
return $request['body'];
}
return false;
}
public function getRemote_information() {
$request = wp_remote_post( $this->update_path, array( 'body' => array( 'action' => 'info' ) ) );
if( ! is_wp_error( $request ) || wp_remote_retrieve_response_code( $request ) === 200) {
return unserialize( $request['body'] );
}
return false;
}
}