Make WordPress Core


Ignore:
Timestamp:
09/14/2022 10:17:53 PM (3 years ago)
Author:
azaozz
Message:

Site health:

  • Add a check to wp_check_php_version() whether the current PHP version is lower than the next (desired) minimum version.
  • Set the next desired minimum PHP version to 7.2.
  • Use that check to update the warnings in the wp_dashboard_php_nag() widget, and on the Site Health screen.

Props Clorith, SergeyBiryukov, ironprogrammer, azaozz.
See #56199.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/wp-admin/includes/dashboard.php

    r54071 r54169  
    2121    global $wp_registered_widgets, $wp_registered_widget_controls, $wp_dashboard_control_callbacks;
    2222
     23    $screen = get_current_screen();
     24
     25    /* Register Widgets and Controls */
    2326    $wp_dashboard_control_callbacks = array();
    24     $screen                         = get_current_screen();
    25 
    26     /* Register Widgets and Controls */
    27 
    28     $response = wp_check_browser_version();
    29 
    30     if ( $response && $response['upgrade'] ) {
     27
     28    // Browser version
     29    $check_browser = wp_check_browser_version();
     30
     31    if ( $check_browser && $check_browser['upgrade'] ) {
    3132        add_filter( 'postbox_classes_dashboard_dashboard_browser_nag', 'dashboard_browser_nag_class' );
    3233
    33         if ( $response['insecure'] ) {
     34        if ( $check_browser['insecure'] ) {
    3435            wp_add_dashboard_widget( 'dashboard_browser_nag', __( 'You are using an insecure browser!' ), 'wp_dashboard_browser_nag' );
    3536        } else {
     
    3940
    4041    // PHP Version.
    41     $response = wp_check_php_version();
    42 
    43     if ( $response && isset( $response['is_acceptable'] ) && ! $response['is_acceptable']
    44         && current_user_can( 'update_php' )
    45     ) {
    46         add_filter( 'postbox_classes_dashboard_dashboard_php_nag', 'dashboard_php_nag_class' );
    47 
    48         wp_add_dashboard_widget( 'dashboard_php_nag', __( 'PHP Update Recommended' ), 'wp_dashboard_php_nag' );
     42    $check_php = wp_check_php_version();
     43
     44    if ( $check_php && current_user_can( 'update_php' ) ) {
     45        // If "not acceptable" the widget will be shown.
     46        if ( isset( $check_php['is_acceptable'] ) && ! $check_php['is_acceptable'] ) {
     47            add_filter( 'postbox_classes_dashboard_dashboard_php_nag', 'dashboard_php_nag_class' );
     48
     49            if ( $check_php['is_lower_than_future_minimum'] ) {
     50                wp_add_dashboard_widget( 'dashboard_php_nag', __( 'PHP Update Required' ), 'wp_dashboard_php_nag' );
     51            } else {
     52                wp_add_dashboard_widget( 'dashboard_php_nag', __( 'PHP Update Recommended' ), 'wp_dashboard_php_nag' );
     53            }
     54        }
    4955    }
    5056
     
    18261832
    18271833    if ( isset( $response['is_secure'] ) && ! $response['is_secure'] ) {
    1828         $msg = sprintf(
     1834        // The `is_secure` array key name doesn't actually imply this is a secure version of PHP. It only means it receives security updates.
     1835
     1836        if ( $response['is_lower_than_future_minimum'] ) {
     1837            $message = sprintf(
     1838                /* translators: %s: The server PHP version. */
     1839                __( 'Your site is running on an outdated version of PHP (%s), which does not receive security updates and soon will not be supported by WordPress. Ensure that PHP is updated on your server as soon as possible. Otherwise you will not be able to upgrade WordPress.' ),
     1840                PHP_VERSION
     1841            );
     1842        } else {
     1843            $message = sprintf(
     1844                /* translators: %s: The server PHP version. */
     1845                __( 'Your site is running on an outdated version of PHP (%s), which does not receive security updates. It should be updated.' ),
     1846                PHP_VERSION
     1847            );
     1848        }
     1849    } elseif ( $response['is_lower_than_future_minimum'] ) {
     1850        $message = sprintf(
    18291851            /* translators: %s: The server PHP version. */
    1830             __( 'Your site is running an insecure version of PHP (%s), which should be updated.' ),
     1852            __( 'Your site is running on an outdated version of PHP (%s), which soon will not be supported by WordPress. Ensure that PHP is updated on your server as soon as possible. Otherwise you will not be able to upgrade WordPress.' ),
    18311853            PHP_VERSION
    18321854        );
    18331855    } else {
    1834         $msg = sprintf(
     1856        $message = sprintf(
    18351857            /* translators: %s: The server PHP version. */
    1836             __( 'Your site is running an outdated version of PHP (%s), which should be updated.' ),
     1858            __( 'Your site is running on an outdated version of PHP (%s), which should be updated.' ),
    18371859            PHP_VERSION
    18381860        );
    18391861    }
    18401862    ?>
    1841     <p><?php echo $msg; ?></p>
    1842 
    1843     <h3><?php _e( 'What is PHP and how does it affect my site?' ); ?></h3>
     1863    <p class="bigger-bolder-text"><?php echo $message; ?></p>
     1864
     1865    <p><?php _e( 'What is PHP and how does it affect my site?' ); ?></p>
    18441866    <p>
     1867        <?php _e( 'PHP is one of the programming languages used to build WordPress. Newer versions of PHP receive regular security updates and may increase your site&#8217;s performance.' ); ?>
    18451868        <?php
    1846         printf(
    1847             /* translators: %s: The minimum recommended PHP version. */
    1848             __( 'PHP is the programming language used to build and maintain WordPress. Newer versions of PHP are created with increased performance in mind, so you may see a positive effect on your site&#8217;s performance. The minimum recommended version of PHP is %s.' ),
    1849             $response ? $response['recommended_version'] : ''
    1850         );
     1869        if ( ! empty( $response['recommended_version'] ) ) {
     1870            printf(
     1871                /* translators: %s: The minimum recommended PHP version. */
     1872                __( 'The minimum recommended version of PHP is %s.' ),
     1873                $response['recommended_version']
     1874            );
     1875        }
    18511876        ?>
    18521877    </p>
     
    18801905    $response = wp_check_php_version();
    18811906
    1882     if ( $response && isset( $response['is_secure'] ) && ! $response['is_secure'] ) {
    1883         $classes[] = 'php-insecure';
     1907    if ( ! $response ) {
     1908        return $classes;
     1909    }
     1910
     1911    if ( isset( $response['is_secure'] ) && ! $response['is_secure'] ) {
     1912        $classes[] = 'php-no-security-updates';
     1913    } elseif ( $response['is_lower_than_future_minimum'] ) {
     1914        $classes[] = 'php-version-lower-than-future-minimum';
    18841915    }
    18851916
Note: See TracChangeset for help on using the changeset viewer.