Make WordPress Core

Ticket #46599: 46599.3.diff

File 46599.3.diff, 6.5 KB (added by afragen, 6 years ago)

add isset() test independent of and before calling is_wp_compatible() or is_php_compatible()

  • wp-admin/includes/class-wp-plugin-install-list-table.php

    diff --git a/wp-admin/includes/class-wp-plugin-install-list-table.php b/wp-admin/includes/class-wp-plugin-install-list-table.php
    index bdba99344a..9a5ce7291b 100644
    a b class WP_Plugin_Install_List_Table extends WP_List_Table { 
    502502                                $author = ' <cite>' . sprintf( __( 'By %s' ), $author ) . '</cite>';
    503503                        }
    504504
    505                         $wp_version = get_bloginfo( 'version' );
     505                        $wp_version   = get_bloginfo( 'version' );
     506                        $requires_php = isset( $plugin['requires_php'] ) ? $plugin['requires_php'] : null;
     507                        $requires_wp  = isset( $plugin['requires'] ) ? $plugin['requires'] : null;
    506508
    507                         $compatible_php = ( empty( $plugin['requires_php'] ) || version_compare( phpversion(), $plugin['requires_php'], '>=' ) );
     509                        $compatible_php = is_php_compatible( $requires_php );
     510                        $compatible_wp  = is_wp_compatible( $requires_wp );
    508511                        $tested_wp      = ( empty( $plugin['tested'] ) || version_compare( $wp_version, $plugin['tested'], '<=' ) );
    509                         $compatible_wp  = ( empty( $plugin['requires'] ) || version_compare( $wp_version, $plugin['requires'], '>=' ) );
    510512
    511513                        $action_links = array();
    512514
  • wp-admin/includes/class-wp-plugins-list-table.php

    diff --git a/wp-admin/includes/class-wp-plugins-list-table.php b/wp-admin/includes/class-wp-plugins-list-table.php
    index 79c0590f0b..47fcc57573 100644
    a b class WP_Plugins_List_Table extends WP_List_Table { 
    761761
    762762                }
    763763
    764                 $compatible_php = ( empty( $plugin_data['requires_php'] ) || version_compare( phpversion(), $plugin_data['requires_php'], '>=' ) );
     764                $requires_php   = isset( $plugin['requires_php'] ) ? $plugin['requires_php'] : null;
     765                $compatible_php = is_php_compatible( $requires_php );
    765766                $class          = $is_active ? 'active' : 'inactive';
    766767                $checkbox_id    = 'checkbox_' . md5( $plugin_data['Name'] );
    767768                if ( $restrict_network_active || $restrict_network_only || in_array( $status, array( 'mustuse', 'dropins' ) ) || ! $compatible_php ) {
  • wp-admin/includes/plugin-install.php

    diff --git a/wp-admin/includes/plugin-install.php b/wp-admin/includes/plugin-install.php
    index 99939b04b9..ec32689f8d 100644
    a b function install_plugin_information() { 
    754754        </div>
    755755        <div id="section-holder" class="wrap">
    756756        <?php
    757         $wp_version = get_bloginfo( 'version' );
     757        $wp_version   = get_bloginfo( 'version' );
     758        $requires_php = isset( $api->requires_php ) ? $api->requires_php : null;
     759        $requires_wp  = isset( $api->requires ) ? $api->requires : null;
    758760
    759         $compatible_php = ( empty( $api->requires_php ) || version_compare( phpversion(), $api->requires_php, '>=' ) );
     761        $compatible_php = is_php_compatible( $requires_php );
     762        $compatible_wp  = is_wp_compatible( $requires_wp );
    760763        $tested_wp      = ( empty( $api->tested ) || version_compare( $wp_version, $api->tested, '<=' ) );
    761         $compatible_wp  = ( empty( $api->requires ) || version_compare( $wp_version, $api->requires, '>=' ) );
    762764
    763765        if ( ! $compatible_php ) {
    764766                echo '<div class="notice notice-error notice-alt"><p>';
  • wp-admin/includes/plugin.php

    diff --git a/wp-admin/includes/plugin.php b/wp-admin/includes/plugin.php
    index 23bc994749..cdfb9832dc 100644
    a b function validate_plugin_requirements( $plugin ) { 
    10901090                return true;
    10911091        }
    10921092
    1093         $plugin_data['wp_compatible']  = version_compare( get_bloginfo( 'version' ), $plugin_data['requires'], '>=' );
    1094         $plugin_data['php_compatible'] = version_compare( phpversion(), $plugin_data['requires_php'], '>=' );
     1093        $plugin_data['wp_compatible']  = is_wp_compatible( $plugin_data['requires'] );
     1094        $plugin_data['php_compatible'] = is_php_compatible( $plugin_data['requires_php'] );
    10951095
    10961096        $plugin_data = array_merge( $plugin_data, get_plugin_data( WP_PLUGIN_DIR . '/' . $plugin ) );
    10971097
  • wp-admin/includes/update.php

    diff --git a/wp-admin/includes/update.php b/wp-admin/includes/update.php
    index 6c7d3b58ce..e535eac932 100644
    a b function wp_plugin_update_row( $file, $plugin_data ) { 
    400400                        $active_class = is_plugin_active( $file ) ? ' active' : '';
    401401                }
    402402
    403                 $compatible_php = ( empty( $response->requires_php ) || version_compare( phpversion(), $response->requires_php, '>=' ) );
     403                $requires_php   = isset( $response->requires_php ) ? $response->requires_php : null;
     404                $compatible_php = is_php_compatible( $requires_php );
    404405                $notice_type    = $compatible_php ? 'notice-warning' : 'notice-error';
    405406
    406407                echo '<tr class="plugin-update-tr' . $active_class . '" id="' . esc_attr( $response->slug . '-update' ) . '" data-slug="' . esc_attr( $response->slug ) . '" data-plugin="' . esc_attr( $file ) . '"><td colspan="' . esc_attr( $wp_list_table->get_column_count() ) . '" class="plugin-update colspanchange"><div class="update-message notice inline ' . $notice_type . ' notice-alt"><p>';
  • wp-admin/update-core.php

    diff --git a/wp-admin/update-core.php b/wp-admin/update-core.php
    index 7239243333..225b485d0e 100644
    a b function list_plugin_updates() { 
    295295                        }
    296296                }
    297297
    298                 $compatible_php = ( empty( $plugin_data->update->requires_php ) || version_compare( phpversion(), $plugin_data->update->requires_php, '>=' ) );
     298                $requires_php   = isset( $plugin_data->update->requires_php ) ? $plugin_data->update->requires_php : null;
     299                $compatible_php = is_php_compatible( $requires_php );
    299300
    300301                if ( ! $compatible_php && current_user_can( 'update_php' ) ) {
    301302                        $compat .= '<br>' . __( 'This update doesn&#8217;t work with your version of PHP.' ) . '&nbsp;';
  • wp-includes/functions.php

    diff --git a/wp-includes/functions.php b/wp-includes/functions.php
    index 4efc00f389..70c1db9bd8 100644
    a b function wp_direct_php_update_button() { 
    70047004        );
    70057005        echo '</p>';
    70067006}
     7007
     7008/**
     7009* Checks compatibility with the current WordPress version.
     7010*
     7011* @since 5.2.0
     7012*
     7013* @param string $required Minimum required WordPress version.
     7014* @return bool True if required version is compatible or empty, false if not.
     7015*/
     7016function is_wp_compatible( $required ) {
     7017        return empty( $required ) || version_compare( get_bloginfo( 'version' ), $required, '>=' );
     7018}
     7019
     7020/**
     7021 * Checks compatibility with the current PHP version.
     7022 *
     7023 * @since 5.2.0
     7024 *
     7025 * @param string $required Minimum required PHP version.
     7026 * @return bool True if required version is compatible or empty, false if not.
     7027 */
     7028function is_php_compatible( $required ) {
     7029    return empty( $required ) || version_compare( phpversion(), $required, '>=' );
     7030}