Beispiel #1
0
 public static function mangle_update_themes($themes)
 {
     // WP saves once before checking, in case it fails
     static $tried = false;
     if (!$tried) {
         $tried = true;
         return $themes;
     }
     $ours = Sputnik::get_installed(true);
     if (empty($ours)) {
         return $themes;
     }
     $data = array();
     $files = array();
     foreach ($ours as $file => $theme) {
         // If something accidentally slipped in...
         if (empty($theme['Sputnik ID'])) {
             // ...ignore it.
             continue;
         }
         $name = $theme['Sputnik ID'];
         $files[$name] = $file;
         $data[$name] = $theme['Version'];
     }
     $url = Sputnik::API_BASE . '/version';
     $options = array('headers' => array('X-WP-Domain' => self::domain()), 'user-agent' => 'WP eCommerce Marketplace: ' . WPSC_VERSION);
     $url = esc_url_raw(add_query_arg('themes', urlencode(json_encode($data)), $url));
     $req = wp_safe_remote_get($url, $options);
     if (is_wp_error($req) || $req['response']['code'] !== 200) {
         return $themes;
     }
     $response = json_decode($req['body']);
     if (empty($response)) {
         return $themes;
     }
     foreach ($response as $name => $result) {
         $file = $files[$name];
         if ($result->status === 410) {
             self::$suspended[$name] = $result;
             Sputnik::suspend_plugin($name, $file, $result);
             continue;
         }
         if ($result->status !== 200) {
             continue;
         }
         $info = (object) array('package' => $result->location, 'url' => $result->url, 'new_version' => $result->version, 'slug' => 'sputnik-' . $name, 'sputnik_id' => $name);
         $themes->response[$file] = $info;
     }
     return $themes;
 }