Ticket #18200: 18200.3.diff
File 18200.3.diff, 1.6 KB (added by , 11 years ago) |
---|
-
src/wp-admin/includes/plugin.php
787 787 788 788 $errors = array(); 789 789 790 $translation_data = wp_get_installed_translations(); 790 791 foreach( $plugins as $plugin_file ) { 791 792 // Run Uninstall hook 792 793 if ( is_uninstallable_plugin( $plugin_file ) ) … … 794 795 795 796 $this_plugin_dir = trailingslashit( dirname($plugins_dir . $plugin_file) ); 796 797 // If plugin is in its own directory, recursively delete the directory. 797 if ( strpos($plugin_file, '/') && $this_plugin_dir != $plugins_dir ) //base check on if plugin includes directory separator AND that it's not the root plugin folder 798 // Base check on if plugin includes directory separator AND that it's not the root plugin folder. 799 if ( strpos($plugin_file, '/') && $this_plugin_dir != $plugins_dir ) { 798 800 $deleted = $wp_filesystem->delete($this_plugin_dir, true); 799 else 801 802 // Remove any translation files. 803 $slug = basename( $this_plugin_dir ); 804 if ( isset( $translation_data[ $slug ] ) ) { 805 if ( ! isset( $lang_dir ) ) 806 $lang_dir = $wp_filesystem->wp_lang_dir(); 807 if ( $lang_dir ) { 808 foreach ( $translation_data[ $slug ] as $language => $po_file_data ) { 809 $wp_filesystem->delete( trailingslashit( $lang_dir ) . "plugins/$slug-$language.po" ); 810 $wp_filesystem->delete( trailingslashit( $lang_dir ) . "plugins/$slug-$language.mo" ); 811 } 812 } 813 } 814 } else { 800 815 $deleted = $wp_filesystem->delete($plugins_dir . $plugin_file); 816 } 801 817 802 818 if ( ! $deleted ) 803 819 $errors[] = $plugin_file;