Ticket #14781: 14781_2.diff

File 14781_2.diff, 1.3 KB (added by edwardw, 19 months ago)

Refresh of existing patch

  • wp-admin/includes/class-wp-upgrader.php

     
    144144                if ( $wp_filesystem->is_dir($working_dir) ) 
    145145                        $wp_filesystem->delete($working_dir, true); 
    146146 
    147                 // Unzip package to working directory 
    148                 $result = unzip_file($package, $working_dir); //TODO optimizations, Copy when Move/Rename would suffice? 
     147                $extension = pathinfo($package, PATHINFO_EXTENSION); 
     148                 
     149                // Make uploading a PHP file instead of a zip archive possible 
     150                if ( $extension == 'php' ) { 
     151                        // Create a new folder 
     152                        mkdir($working_dir); 
     153                         
     154                        // Copy the PHP file into the new foler 
     155                        $result = rename($package, $working_dir . '/' . basename($package)); 
     156                } else { 
     157                        // Unzip package to working directory 
     158                        $result = unzip_file($package, $working_dir); //TODO optimizations, Copy when Move/Rename would suffice? 
     159                         
     160                        // Once extracted, delete the package if required. 
     161                        if ( $delete_package ) 
     162                                unlink($package); 
     163                } 
    149164 
    150                 // Once extracted, delete the package if required. 
    151                 if ( $delete_package ) 
    152                         unlink($package); 
    153  
    154165                if ( is_wp_error($result) ) { 
    155166                        $wp_filesystem->delete($working_dir, true); 
    156167                        if ( 'incompatible_archive' == $result->get_error_code() ) {