Beispiel #1
0
 public function check_update_custom($transient)
 {
     if (isset($_POST['action']) && ($_POST['action'] == 'update-plugin' || $_POST['action'] == 'update-selected')) {
         $extensions = MainWPExtensions::getExtensions();
         if (defined('DOING_AJAX') && isset($_POST['plugin']) && $_POST['action'] == 'update-plugin') {
             $plugin_slug = $_POST['plugin'];
             if (isset($extensions[$plugin_slug])) {
                 if (isset($transient->response[$plugin_slug]) && version_compare($transient->response[$plugin_slug]->new_version, $extensions[$plugin_slug]['version'], '=')) {
                     return $transient;
                 }
                 $api_slug = dirname($plugin_slug);
                 $rslt = MainWPAPISettings::getUpgradeInformationTwo($api_slug);
                 if (!empty($rslt) && isset($rslt->latest_version) && version_compare($rslt->latest_version, $extensions[$plugin_slug]['version'], '>')) {
                     $transient->response[$plugin_slug] = self::mapRsltObj($rslt);
                 }
                 return $transient;
             }
         } else {
             if ($_POST['action'] == 'update-selected' && isset($_POST['checked']) && is_array($_POST['checked'])) {
                 $updated = false;
                 foreach ($_POST['checked'] as $plugin_slug) {
                     if (isset($extensions[$plugin_slug])) {
                         if (isset($transient->response[$plugin_slug]) && version_compare($transient->response[$plugin_slug]->new_version, $extensions[$plugin_slug]['version'], '=')) {
                             continue;
                         }
                         $api_slug = dirname($plugin_slug);
                         $rslt = MainWPAPISettings::getUpgradeInformationTwo($api_slug);
                         if (!empty($rslt) && isset($rslt->latest_version) && version_compare($rslt->latest_version, $extensions[$plugin_slug]['version'], '>')) {
                             $this->upgradeVersionInfo->result[$api_slug] = $rslt;
                             $transient->response[$plugin_slug] = self::mapRsltObj($rslt);
                             $updated = true;
                         }
                     }
                 }
                 if ($updated) {
                     MainWPUtility::update_option("mainwp_upgradeVersionInfo", serialize($this->upgradeVersionInfo));
                 }
                 return $transient;
             }
         }
     }
     if (empty($transient->checked)) {
         return $transient;
     }
     if (isset($_GET['do']) && $_GET['do'] == 'checkUpgrade' && time() - $this->upgradeVersionInfo->updated > 30) {
         $this->checkUpgrade();
     }
     if ($this->upgradeVersionInfo != null && property_exists($this->upgradeVersionInfo, 'result') && is_array($this->upgradeVersionInfo->result)) {
         foreach ($this->upgradeVersionInfo->result as $rslt) {
             if (!isset($rslt->slug)) {
                 continue;
             }
             //Legacy, to support older versions.
             $plugin_slug = MainWPExtensions::getPluginSlug($rslt->slug);
             if (isset($transient->checked[$plugin_slug]) && version_compare($rslt->latest_version, $transient->checked[$plugin_slug], '>')) {
                 $transient->response[$plugin_slug] = self::mapRsltObj($rslt);
             }
         }
     }
     return $transient;
 }