Menu Adam R Brown

WP hooks navigation: Home/browseActions indexFilters index

Source View: update_feedback

To save our bandwidth, we show only a snippet of code around each occurence of the hook. View complete file in SVN (without highlighting).

Understanding Source Code

The best way to understand what a hook does is to look at where it occurs in the source code.

Remember, this hook may occur in more than one file. Moreover, the hook's context may change from version to version.

Source View

This hook occurs 11 times in this file.

Line Code
202
203      // Get the URL to the zip file
204      $r = $current->response[ $plugin ];
205
206      if ( empty($r->package) )
207           return new WP_Error('no_package', __('Upgrade package not available.'));
208
209      // Download the package
210      $package = $r->package;
211      apply_filters('update_feedback', sprintf(__('Downloading update from %s'), $package));
212      $download_file = download_url($package);
213
214      if ( is_wp_error($download_file) )
215           return new WP_Error('download_failed', __('Download failed.'), $download_file->get_error_message());
216
217      $working_dir = $content_dir . 'upgrade/' . basename($plugin, '.php');
218
219      // Clean up working directory
220      if ( $wp_filesystem->is_dir($working_dir) )
221           $wp_filesystem->delete($working_dir, true);
222
223      apply_filters('update_feedback', __('Unpacking the update'));
224      // Unzip package to working directory
225      $result = unzip_file($download_file, $working_dir);
226
227      // Once extracted, delete the package
228      unlink($download_file);
229
230      if ( is_wp_error($result) ) {
231           $wp_filesystem->delete($working_dir, true);
232           return $result;
233      }
234
235      if ( is_plugin_active($plugin) ) {
236           //Deactivate the plugin silently, Prevent deactivation hooks from running.
237           apply_filters('update_feedback', __('Deactivating the plugin'));
238           deactivate_plugins($plugin, true);
239      }
240
241      // Remove the existing plugin.
242      apply_filters('update_feedback', __('Removing the old version of the plugin'));
243      $this_plugin_dir = trailingslashit( dirname($plugins_dir . $plugin) );
244
245      // If plugin is in its own directory, recursively delete the directory.
246      if ( strpos($plugin, '/') && $this_plugin_dir != $plugins_dir ) //base check on if plugin includes directory seperator AND that its not the root plugin folder
247           $deleted = $wp_filesystem->delete($this_plugin_dir, true);
248      else
249           $deleted = $wp_filesystem->delete($plugins_dir . $plugin);
250
251      if ( ! $deleted ) {
252           $wp_filesystem->delete($working_dir, true);
253           return new WP_Error('delete_failed', __('Could not remove the old plugin'));
254      }
255
256      apply_filters('update_feedback', __('Installing the latest version'));
257      // Copy new version of plugin into place.
258      $result = copy_dir($working_dir, $plugins_dir);
259      if ( is_wp_error($result) ) {
260           $wp_filesystem->delete($working_dir, true);
261           return $result;
262      }
263
264      //Get a list of the directories in the working directory before we delete it, We need to know the new folder for the plugin
265      $filelist = array_keys( $wp_filesystem->dirlist($working_dir) );
 
Line Code
326           return new WP_Error('fs_no_content_dir', __('Unable to locate WordPress Content directory (wp-content).'));
327
328      $themes_dir = trailingslashit( $themes_dir );
329      $content_dir = trailingslashit( $content_dir );
330
331      if ( empty($r->package) )
332           return new WP_Error('no_package', __('Upgrade package not available.'));
333
334      // Download the package
335      apply_filters('update_feedback', sprintf(__('Downloading update from %s'), $r['package']));
336      $download_file = download_url($r['package']);
337
338      if ( is_wp_error($download_file) )
339           return new WP_Error('download_failed', __('Download failed.'), $download_file->get_error_message());
340
341      $working_dir = $content_dir . 'upgrade/' . basename($theme_directory);
342
343      // Clean up working directory
344      if ( $wp_filesystem->is_dir($working_dir) )
345           $wp_filesystem->delete($working_dir, true);
346
347      apply_filters('update_feedback', __('Unpacking the update'));
348      // Unzip package to working directory
349      $result = unzip_file($download_file, $working_dir);
350
351      // Once extracted, delete the package
352      unlink($download_file);
353
354      if ( is_wp_error($result) ) {
355           $wp_filesystem->delete($working_dir, true);
356           return $result;
 
Line Code
359      //TODO: Is theme currently active? If so, set default theme
360      /*
361      if ( is_plugin_active($plugin) ) {
362           //Deactivate the plugin silently, Prevent deactivation hooks from running.
363           apply_filters('update_feedback', __('Deactivating the plugin'));
364           deactivate_plugins($plugin, true);
365      }*/
366
367      // Remove the existing plugin.
368      apply_filters('update_feedback', __('Removing the old version of the theme'));
369      $deleted = $wp_filesystem->delete($themes_dir . $theme_directory, true);
370
371      if ( ! $deleted ) {
372           $wp_filesystem->delete($working_dir, true);
373           return new WP_Error('delete_failed', __('Could not remove the old plugin'));
374      }
375
376      apply_filters('update_feedback', __('Installing the latest version'));
377      // Copy new version of plugin into place.
378      $result = copy_dir($working_dir, $themes_dir);
379      if ( is_wp_error($result) ) {
380           $wp_filesystem->delete($working_dir, true);
381           return $result;
382      }
383
384      //Get a list of the directories in the working directory before we delete it, We need to know the new folder for the plugin
385      //$filelist = array_keys( $wp_filesystem->dirlist($working_dir) );
 
Line Code
434           return new WP_Error('fs_no_content_dir', __('Unable to locate WordPress Content directory (wp-content).'));
435
436      $wp_dir = trailingslashit( $wp_dir );
437      $content_dir = trailingslashit( $content_dir );
438
439      // Get the URL to the zip file
440      $package = $current->package;
441
442      // Download the package
443      apply_filters('update_feedback', sprintf(__('Downloading update from %s'), $package));
444      $download_file = download_url($package);
445
446      if ( is_wp_error($download_file) )
447           return new WP_Error('download_failed', __('Download failed.'), $download_file->get_error_message());
448
449      $working_dir = $content_dir . 'upgrade/core';
450      // Clean up working directory
451      if ( $wp_filesystem->is_dir($working_dir) ) {
452           $wp_filesystem->delete($working_dir, true);
453      }
454
455      apply_filters('update_feedback', __('Unpacking the core update'));
456      // Unzip package to working directory
457      $result = unzip_file($download_file, $working_dir);
458      // Once extracted, delete the package
459      unlink($download_file);
460
461      if ( is_wp_error($result) ) {
462           $wp_filesystem->delete($working_dir, true);
463           return $result;
464      }