WordPress.org

Make WordPress Core

Ticket #43987: 43987v2.diff

File 43987v2.diff, 3.8 KB (added by afragen, 9 months ago)

hard-coded version, more in line with WP core

  • src/wp-admin/includes/class-wp-plugins-list-table.php

    diff --git src/wp-admin/includes/class-wp-plugins-list-table.php src/wp-admin/includes/class-wp-plugins-list-table.php
    index 6e130f94b4..e8d6741acc 100644
    class WP_Plugins_List_Table extends WP_List_Table { 
    749749                        $plugin_name = $plugin_data['Name'];
    750750                }
    751751
    752                 if ( ! empty( $totals['upgrade'] ) && ! empty( $plugin_data['update'] ) ) {
     752
     753                $tested_php     = ! empty($plugin_data['requires_php'] );
     754                $compatible_php = ( ! $tested_php || version_compare( substr( PHP_VERSION, 0, strlen( $plugin_data['requires_php'] ) ), $plugin_data['requires_php'], '>=' ) );
     755                $can_update     = ! $tested_php || $compatible_php;
     756
     757                if ( ! empty( $totals['upgrade'] ) && ! empty( $plugin_data['update'] ) && $can_update ) {
    753758                        $class .= ' update';
    754759                }
    755760
    class WP_Plugins_List_Table extends WP_List_Table { 
    819824                                                );
    820825                                        }
    821826
     827                                        if ( ! $can_update ) {
     828                                                $plugin_meta[] = __( 'Incompatible with your version of PHP.' ) . ' ' .
     829                                                /* translators: Link to servehappy page */
     830                                                sprintf(
     831                                                        __( '%sLearn more about updating PHP.%s' ),
     832                                                        '<a href="https://wordpress.org/support/upgrade-php/">',
     833                                                        '</a>'
     834                                                );
     835                                        }
     836
    822837                                        /**
    823838                                         * Filters the array of row meta for each plugin in the Plugins list table.
    824839                                         *
  • src/wp-admin/includes/update.php

    diff --git src/wp-admin/includes/update.php src/wp-admin/includes/update.php
    index d8e1fe84d9..845df7f416 100644
    function wp_plugin_update_row( $file, $plugin_data ) { 
    376376
    377377        $response = $current->response[ $file ];
    378378
     379        $tested_php     = ! empty( $response->requires_php );
     380        $compatible_php = ( ! $tested_php || version_compare( substr( PHP_VERSION, 0, strlen( $response->requires_php ) ), $response->requires_php, '>=' ) );
     381        $can_update     = ! $tested_php || $compatible_php;
     382
     383        if ( ! $can_update ) {
     384                return false;
     385        }
     386
    379387        $plugins_allowedtags = array(
    380388                'a'       => array(
    381389                        'href'  => array(),
  • src/wp-admin/update-core.php

    diff --git src/wp-admin/update-core.php src/wp-admin/update-core.php
    index 61527bfc82..9863a23637 100644
    foreach ( (array) $plugins as $plugin_file => $plugin_data ) { 
    287287                        $compat .= '<br />' . sprintf( __( 'Compatibility with WordPress %1$s: Unknown' ), $core_update_version );
    288288                }
    289289        }
     290
     291        $tested_php     = ! empty( $plugin_data->update->requires_php );
     292        $compatible_php = ( ! $tested_php || version_compare( substr( PHP_VERSION, 0, strlen( $plugin_data->update->requires_php ) ), $plugin_data->update->requires_php, '>=' ) );
     293        $can_update     = ! $tested_php || $compatible_php;
     294
     295        if ( ! $can_update ) {
     296                $compat .= '<br>' . __( 'Incompatible with your version of PHP.' ) . '&nbsp;';
     297                /* translators: Link to servehappy page */
     298                $compat .= sprintf(
     299                        __( '%sLearn more about updating PHP.%s' ),
     300                        '<a href="https://wordpress.org/support/upgrade-php/">',
     301                        '</a>'
     302                );
     303        }
     304
    290305        // Get the upgrade notice for the new plugin version.
    291306        if ( isset( $plugin_data->update->upgrade_notice ) ) {
    292307                $upgrade_notice = '<br />' . strip_tags( $plugin_data->update->upgrade_notice );
    foreach ( (array) $plugins as $plugin_file => $plugin_data ) { 
    308323        ?>
    309324        <tr>
    310325                <td class="check-column">
     326                <?php if ( $can_update ) : ?>
    311327                        <input type="checkbox" name="checked[]" id="<?php echo $checkbox_id; ?>" value="<?php echo esc_attr( $plugin_file ); ?>" />
    312328                        <label for="<?php echo $checkbox_id; ?>" class="screen-reader-text">
    313329                                                                                <?php
    foreach ( (array) $plugins as $plugin_file => $plugin_data ) { 
    318334                                                                                );
    319335                                ?>
    320336                                </label>
     337                        <?php endif; ?>
    321338                        </td>
    322339                        <td class="plugin-title"><p>
    323340                                <?php echo $icon; ?>