WordPress.org

Make WordPress Core

Ticket #20944: 20944.patch

File 20944.patch, 1.7 KB (added by SergeyBiryukov, 6 years ago)
  • wp-admin/includes/plugin.php

     
    778778
    779779        // invalid plugins get deactivated
    780780        foreach ( $plugins as $plugin ) {
     781
     782                // see if the plugin file name was changed
     783                if ( ! file_exists( WP_PLUGIN_DIR . '/' . $plugin ) ) {
     784                        $plugin_dir = dirname( $plugin );
     785                        if ( ! empty( $plugin_dir ) ) {
     786                                $renamed_plugin_data = get_plugins( '/' . $plugin_dir );
     787                                if ( ! empty( $renamed_plugin_data ) ) {
     788                                        $plugin_files = array_keys( $renamed_plugin_data );
     789                                        $renamed_plugin = $plugin_dir . '/' . $plugin_files[0];
     790                                        if ( ! is_wp_error( validate_plugin( $renamed_plugin ) ) ) {
     791                                                deactivate_plugins( $plugin, true );
     792                                                activate_plugin( $renamed_plugin, '', false, true );
     793                                                continue;
     794                                        }
     795                                }
     796                        }
     797                }
     798
    781799                $result = validate_plugin( $plugin );
    782800                if ( is_wp_error( $result ) ) {
    783801                        $invalid[$plugin] = $result;
  • wp-admin/plugins.php

     
    316316        }
    317317}
    318318
     319$invalid = validate_active_plugins();
    319320$wp_list_table->prepare_items();
    320321
    321322wp_enqueue_script('plugin-install');
     
    349350
    350351require_once(ABSPATH . 'wp-admin/admin-header.php');
    351352
    352 $invalid = validate_active_plugins();
    353353if ( !empty($invalid) )
    354354        foreach ( $invalid as $plugin_file => $error )
    355355                echo '<div id="message" class="error"><p>' . sprintf(__('The plugin <code>%s</code> has been <strong>deactivated</strong> due to an error: %s'), esc_html($plugin_file), $error->get_error_message()) . '</p></div>';