Make WordPress Core

Changeset 44476


Ignore:
Timestamp:
01/08/2019 05:26:38 PM (8 years ago)
Author:
flixos90
Message:

General: Make Update PHP notice link customizable.

After [42832], [42891] and [43006], this changeset refines the core notice informing about an outdated PHP version:

  • The link to the Update PHP information page can now be adjusted using either a WP_UPDATE_PHP_URL environment variable, or a new wp_update_php_url filter.
  • If that URL is different from the default one that points to https://wordpress.org/support/update-php/ or its localized equivalent, a note indicates that the linked resource has not been provided by WordPress itself, and the default URL is still linked to as an additional resource.
  • The URL for the default information page has been updated to use the slug update-php instead of upgrade-php.
  • @since annotations have been updated.

Going forward, admin areas that display information related to the PHP version should use the new function wp_get_update_php_url().

Props afragen, fierevere, flixos90, markjaquith, miss_jwo, nerrad, pento, schlessera, SergeyBiryukov, spacedmonkey.
Fixes #45686. See #41191.

Location:
trunk/src
Files:
2 edited

Legend:

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

    r44420 r44476  
    16101610
    16111611/**
    1612  * Displays the PHP upgrade nag.
    1613  *
    1614  * @since 5.0.0
     1612 * Displays the PHP update nag.
     1613 *
     1614 * @since 5.1.0
    16151615 */
    16161616function wp_dashboard_php_nag() {
     
    16271627        }
    16281628
     1629        $update_url  = wp_get_update_php_url();
     1630        $default_url = wp_get_default_update_php_url();
     1631
    16291632        ?>
    16301633        <p><?php echo $msg; ?></p>
     
    16351638        <p class="button-container">
    16361639                <?php
    1637                         printf(
    1638                                 '<a class="button button-primary" href="%1$s" target="_blank" rel="noopener noreferrer">%2$s <span class="screen-reader-text">%3$s</span><span aria-hidden="true" class="dashicons dashicons-external"></span></a>',
    1639                                 esc_url( _x( 'https://wordpress.org/support/update-php/', 'localized PHP upgrade information page' ) ),
    1640                                 __( 'Learn more about updating PHP' ),
    1641                                 /* translators: accessibility text */
    1642                                 __( '(opens in a new tab)' )
    1643                         );
     1640                printf(
     1641                        '<a class="button button-primary" href="%1$s" target="_blank" rel="noopener noreferrer">%2$s <span class="screen-reader-text">%3$s</span><span aria-hidden="true" class="dashicons dashicons-external"></span></a>',
     1642                        esc_url( $update_url ),
     1643                        __( 'Learn more about updating PHP' ),
     1644                        /* translators: accessibility text */
     1645                        __( '(opens in a new tab)' )
     1646                );
    16441647                ?>
    16451648        </p>
    16461649        <?php
     1650
     1651        if ( $update_url !== $default_url ) {
     1652                ?>
     1653                <p class="description">
     1654                        <?php
     1655                        printf(
     1656                                /* translators: %s: default Update PHP page URL */
     1657                                __( 'This resource is provided by your web host, and is specific to your site. For more information, <a href="%s" target="_blank">see the official WordPress documentation</a>.' ),
     1658                                esc_url( $default_url )
     1659                        );
     1660                        ?>
     1661                </p>
     1662                <?php
     1663        }
    16471664}
    16481665
     
    16501667 * Adds an additional class to the PHP nag if the current version is insecure.
    16511668 *
    1652  * @since 5.0.0
     1669 * @since 5.1.0
    16531670 *
    16541671 * @param array $classes Metabox classes.
     
    16661683
    16671684/**
    1668  * Checks if the user needs to upgrade PHP.
    1669  *
    1670  * @since 5.0.0
     1685 * Checks if the user needs to update PHP.
     1686 *
     1687 * @since 5.1.0
    16711688 *
    16721689 * @return array|false $response Array of PHP version data. False on failure.
  • trunk/src/wp-includes/functions.php

    r44467 r44476  
    65816581        }
    65826582}
     6583
     6584/**
     6585 * Gets the URL to learn more about updating the PHP version the site is running on.
     6586 *
     6587 * This URL can be overridden by specifying an environment variable `WP_UPDATE_PHP_URL` or by using the
     6588 * {@see 'wp_update_php_url'} filter. Providing an empty string is not allowed and will result in the
     6589 * default URL being used. Furthermore the page the URL links to should preferably be localized in the
     6590 * site language.
     6591 *
     6592 * @since 5.1.0
     6593 *
     6594 * @return string URL to learn more about updating PHP.
     6595 */
     6596function wp_get_update_php_url() {
     6597        $default_url = wp_get_default_update_php_url();
     6598
     6599        $update_url = $default_url;
     6600        if ( false !== getenv( 'WP_UPDATE_PHP_URL' ) ) {
     6601                $update_url = getenv( 'WP_UPDATE_PHP_URL' );
     6602        }
     6603
     6604        /**
     6605         * Filters the URL to learn more about updating the PHP version the site is running on.
     6606         *
     6607         * Providing an empty string is not allowed and will result in the default URL being used. Furthermore
     6608         * the page the URL links to should preferably be localized in the site language.
     6609         *
     6610         * @since 5.1.0
     6611         *
     6612         * @param string $update_url URL to learn more about updating PHP.
     6613         */
     6614        $update_url = apply_filters( 'wp_update_php_url', $update_url );
     6615
     6616        if ( empty( $update_url ) ) {
     6617                $update_url = $default_url;
     6618        }
     6619
     6620        return $update_url;
     6621}
     6622
     6623/**
     6624 * Gets the default URL to learn more about updating the PHP version the site is running on.
     6625 *
     6626 * Do not use this function to retrieve this URL. Instead, use {@see wp_get_update_php_url()} when relying on the URL.
     6627 * This function does not allow modifying the returned URL, and is only used to compare the actually used URL with the
     6628 * default one.
     6629 *
     6630 * @since 5.1.0
     6631 * @access private
     6632 *
     6633 * @return string Default URL to learn more about updating PHP.
     6634 */
     6635function wp_get_default_update_php_url() {
     6636        return _x( 'https://wordpress.org/support/update-php/', 'localized PHP upgrade information page' );
     6637}
Note: See TracChangeset for help on using the changeset viewer.