Make WordPress Core


Ignore:
Timestamp:
09/14/2022 10:17:53 PM (4 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.