°´w‰p´w‰SHA-3840€ñx‰SHA-256 @€Qy‰Påx‰ÐÛx‰€¹w‰P¹w‰MD4@PIy‰§—Kˆy‰SHA1@PLy‰ïx‰ïx‰Ððx‰P¹w‰Tˆy‰`ˆy‰lˆy‰xˆy‰„ˆy‰MD5@ÐJy‰ ,y‰à;y‰`8y‰Pñx‰P¹w‰Àîx‰ ,y‰à;y‰`8y‰Pñx‰P¹w‰Àîx‰ öx‰0y‰ñx‰P¹w‰pîx‰öx‰0y‰ñx‰P¹w‰pîx‰hˆy‰’ˆy‰`z‰ µw‰¸Šy‰šˆy‰€z‰ µw‰ ¢ˆy‰¦ˆy‰ z‰ µw‰¢ˆy‰¯ˆy‰ z‰ µw‰ µˆy‰Ĉy‰Öˆy‰z‰ z‰ð,x‰vÿÿÿéˆy‰öˆy‰‰y‰‰y‰€z‰0x‰(‰y‰<‰y‰Àz‰ z‰ð,x‰ Q‰y‰e‰y‰`z‰ z‰ð,x‰ wÿÿÿz‰y‰‡‰y‰Àz‰€z‰0x‰š‰y‰«‰y‰z‰,x‰À‰y‰щy‰ z‰,x‰æ‰y‰ý‰y‰Àz‰àz‰€'x‰ Šy‰+Šy‰`z‰Àz‰€'x‰0BŠy‰OŠy‰z‰@µw‰¶w‰`µw‰ 7x‰0¸w‰pgŠy‰uŠy‰„Šy‰ cy‰z‰ z‰0ºw‰Ð-x‰ 1x‰ 7x‰0¸w‰`5x‰ p•Šy‰¢Šy‰«Šy‰¼Šy‰Àz‰€z‰@»w‰x‰ x‰ »w‰ð·w‰Px‰vÿÿÿ@ÒŠy‰ãŠy‰ðŠy‰Hcy‰Àz‰€z‰@»w‰x‰ x‰ »w‰ð·w‰Px‰vÿÿÿ(‹y‰‹y‰(‹y‰pcy‰Àz‰ z‰€ºw‰Ð-x‰ 1x‰Bx‰ð·w‰`5x‰€4‹y‰L‹y‰W‹y‰˜cy‰`z‰ z‰€ºw‰Ð-x‰ 1x‰Bx‰ð·w‰`5x‰c‹y‰x‹y‰Àcy‰z‰йw‰àx‰Ðx‰0Bx‰ð·w‰€4x‰€ˆ‹y‰‹y‰àcy‰ z‰йw‰àx‰Ðx‰0Bx‰ð·w‰€4x‰­‹y‰È‹y‰dy‰Àz‰àz‰ àºw‰ðx‰ x‰ÐBx‰ð·w‰pCx‰€Ô‹y‰ï‹y‰0dy‰`z‰Àz‰0àºw‰ðx‰ x‰ÐBx‰ð·w‰pCx‰¬ À Ê @ ôæ° ¸ õþÿoðrw‰ðƒw‰¸vw‰ [ èz‰ (¥w‰pw‰¸ üÿÿohýÿÿoþÿÿoÀÿÿÿoðÿÿoLŽw‰ùÿÿo»!z‰€z‰À∉ ­p[„‰ðB‰$skin->plugin_info) ) { //This case is tricky because Bulk_Plugin_Upgrader_Skin (etc) doesn't actually store the plugin //filename anywhere. Instead, it has the plugin headers in $plugin_info. So the best we can //do is compare those headers to the headers of installed plugins. $pluginFile = $this->identifyPluginByHeaders($skin->plugin_info); } if ( $pluginFile !== null ) { return array('plugin', $pluginFile); } elseif ( $themeDirectoryName !== null ) { return array('theme', $themeDirectoryName); } return array(null, null); } /** * Identify an installed plugin based on its headers. * * @param array $searchHeaders The plugin file header to look for. * @return string|null Plugin basename ("foo/bar.php"), or NULL if we can't identify the plugin. */ private function identifyPluginByHeaders($searchHeaders) { if ( !function_exists('get_plugins') ){ /** @noinspection PhpIncludeInspection */ require_once( ABSPATH . '/wp-admin/includes/plugin.php' ); } $installedPlugins = get_plugins(); $matches = array(); foreach($installedPlugins as $pluginBasename => $headers) { $diff1 = array_diff_assoc($headers, $searchHeaders); $diff2 = array_diff_assoc($searchHeaders, $headers); if ( empty($diff1) && empty($diff2) ) { $matches[] = $pluginBasename; } } //It's possible (though very unlikely) that there could be two plugins with identical //headers. In that case, we can't unambiguously identify the plugin that's being upgraded. if ( count($matches) !== 1 ) { return null; } return reset($matches); } /** * @access private * * @param mixed $input * @param array $hookExtra * @return mixed Returns $input unaltered. */ public function setUpgradedThing($input, $hookExtra) { if ( !empty($hookExtra['plugin']) && is_string($hookExtra['plugin']) ) { $this->currentId = $hookExtra['plugin']; $this->currentType = 'plugin'; } elseif ( !empty($hookExtra['theme']) && is_string($hookExtra['theme']) ) { $this->currentId = $hookExtra['theme']; $this->currentType = 'theme'; } else { $this->currentType = null; $this->currentId = null; } return $input; } /** * @access private * * @param array $options * @return array */ public function setUpgradedPluginFromOptions($options) { if ( isset($options['hook_extra']['plugin']) && is_string($options['hook_extra']['plugin']) ) { $this->currentType = 'plugin'; $this->currentId = $options['hook_extra']['plugin']; } else { $this->currentType = null; $this->currentId = null; } return $options; } /** * @access private * * @param mixed $input * @return mixed Returns $input unaltered. */ public function clearUpgradedThing($input = null) { $this->currentId = null; $this->currentType = null; return $input; } } endif;