public static function run_update() { // Prevent the code from running if the code was loaded by an older updater version. if (!isset($GLOBALS['ithemes_updater_path'])) { return; } require_once $GLOBALS['ithemes_updater_path'] . '/api.php'; require_once $GLOBALS['ithemes_updater_path'] . '/packages.php'; require_once $GLOBALS['ithemes_updater_path'] . '/keys.php'; $keys = Ithemes_Updater_Keys::get(); $legacy_keys = Ithemes_Updater_Keys::get_legacy(); if (empty($keys) && empty($legacy_keys)) { return; } Ithemes_Updater_API::get_package_details(false); }
public static function get_full_details($response = false) { if (false === $response) { require_once $GLOBALS['ithemes_updater_path'] . '/api.php'; $response = Ithemes_Updater_API::get_package_details(); } $packages = self::get_local_details(); if (is_wp_error($response)) { $expiration = time() + 600; foreach ($packages as $path => $data) { $packages[$path]['status'] = 'error'; $packages[$path]['error'] = array('code' => 'unknown', 'type' => $response->get_error_code(), 'message' => $response->get_error_message()); } } else { $expiration = time() + 12 * 3600; foreach ($packages as $path => $data) { if (empty($response['packages'][$data['package']])) { continue; } $package = $response['packages'][$data['package']]; if (!empty($package['error'])) { if (in_array($package['error']['type'], array('ITXAPI_License_Key_Unknown', 'ITXAPI_Updater_Missing_Legacy_Key'))) { $packages[$path]['status'] = 'unlicensed'; } else { $packages[$path]['status'] = 'error'; $packages[$path]['error'] = $package['error']; } continue; } $key_map = array('status' => 'status', 'link' => 'package-url', 'ver' => 'available', 'used' => 'used', 'total' => 'total', 'user' => 'user', 'sub_expire' => 'expiration', 'upgrade' => 'upgrade'); foreach ($key_map as $old => $new) { if (isset($package[$old])) { $packages[$path][$new] = $package[$old]; } else { $packages[$path][$new] = null; } } if (isset($package['link_expire'])) { $expiration = min($expiration, $package['link_expire']); } } } $details = compact('packages', 'expiration'); return $details; }