/** * Run an update check and output the result. Useful for making sure that * the update checking process works as expected. */ public function ajaxCheckNow() { if ($_POST['slug'] !== $this->updateChecker->slug) { return; } $this->preAjaxReqest(); $update = $this->updateChecker->checkForUpdates(); if ($update !== null) { echo "An update is available:"; echo '<pre>', htmlentities(print_r($update, true)), '</pre>'; } else { echo 'No updates found.'; } exit; }
/** * Check for updates if the configured check interval has already elapsed. * Will use a shorter check interval on certain admin pages like "Dashboard -> Updates" or when doing cron. * * You can override the default behaviour by using the "puc_check_now-$slug" filter. * The filter callback will be passed three parameters: * - Current decision. TRUE = check updates now, FALSE = don't check now. * - Last check time as a Unix timestamp. * - Configured check period in hours. * Return TRUE to check for updates immediately, or FALSE to cancel. * * This method is declared public because it's a hook callback. Calling it directly is not recommended. */ public function maybeCheckForUpdates() { if (empty($this->checkPeriod)) { return; } $state = $this->updateChecker->getUpdateState(); $shouldCheck = empty($state) || !isset($state->lastCheck) || time() - $state->lastCheck >= $this->getEffectiveCheckPeriod(); //Let plugin authors substitute their own algorithm. $shouldCheck = apply_filters('puc_check_now-' . $this->updateChecker->slug, $shouldCheck, !empty($state) && isset($state->lastCheck) ? $state->lastCheck : 0, $this->checkPeriod); if ($shouldCheck) { $this->updateChecker->checkForUpdates(); } }