From 370519672127054aebcc445eb70a9c4a9c6126fd Mon Sep 17 00:00:00 2001 From: desrosj Date: Thu, 7 Mar 2019 21:37:50 +0000 Subject: [PATCH] General: Add a way to specify a direct link for a user to update PHP. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit A direct URL to where a user can update PHP for their website can now be specified in one of two ways: - Defining the `WP_DIRECT_UPDATE_PHP_URL` environment variable. - Returning a URL to the `wp_direct_php_update_url` filter. When a URL is specified, an additional “Update PHP” button will be displayed at the bottom of the Core dashboard widget informing administrators that their site is running an outdated version of PHP (see [42832]). Merges [44814] to the 5.1 branch. Fixes #46074. Props afragen, desrosj, lukecarbis. Built from https://develop.svn.wordpress.org/branches/5.1@44815 git-svn-id: http://core.svn.wordpress.org/branches/5.1@44647 1a063a9b-81f0-0310-95a4-ce76da25c4cd --- wp-admin/includes/dashboard.php | 1 + wp-includes/functions.php | 55 +++++++++++++++++++++++++++++++++ wp-includes/version.php | 2 +- 3 files changed, 57 insertions(+), 1 deletion(-) diff --git a/wp-admin/includes/dashboard.php b/wp-admin/includes/dashboard.php index 3a2d3a69f8..1f7ad199d6 100644 --- a/wp-admin/includes/dashboard.php +++ b/wp-admin/includes/dashboard.php @@ -1646,6 +1646,7 @@ function wp_dashboard_php_nag() { '; } + +/** + * Gets the URL for directly updating the PHP version the site is running on. + * + * A URL will only be returned if the `WP_DIRECT_UPDATE_PHP_URL` environment variable is specified or + * by using the {@see 'wp_direct_php_update_url'} filter. This allows hosts to send users directly to + * the page where they can update PHP to a newer version. + * + * @return string URL for directly updating PHP or empty string. + */ +function wp_get_direct_php_update_url() { + $direct_update_url = ''; + + if ( false !== getenv( 'WP_DIRECT_UPDATE_PHP_URL' ) ) { + $direct_update_url = getenv( 'WP_DIRECT_UPDATE_PHP_URL' ); + } + + /** + * Filters the URL for directly updating the PHP version the site is running on from the host. + * + * @since 5.1.1 + * + * @param string $direct_update_url URL for directly updating PHP. + */ + $direct_update_url = apply_filters( 'wp_direct_php_update_url', $direct_update_url ); + + return $direct_update_url; +} + +/** + * Display a button directly linking to a PHP update process. + * + * This provides hosts with a way for users to be sent directly to their PHP update process. + * + * The button is only displayed if a URL is returned by `wp_get_direct_php_update_url()`. + * + * @since 5.1.1 + */ +function wp_direct_php_update_button() { + $direct_update_url = wp_get_direct_php_update_url(); + + if ( empty( $direct_update_url ) ) { + return; + } + + echo '

'; + printf( + '%2$s %3$s', + esc_url( $direct_update_url ), + __( 'Update PHP' ), + /* translators: accessibility text */ + __( '(opens in a new tab)' ) + ); + echo '

'; +} diff --git a/wp-includes/version.php b/wp-includes/version.php index fe9785c8c5..ae84e69dab 100644 --- a/wp-includes/version.php +++ b/wp-includes/version.php @@ -13,7 +13,7 @@ * * @global string $wp_version */ -$wp_version = '5.1.1-alpha-44807'; +$wp_version = '5.1.1-alpha-44815'; /** * Holds the WordPress DB revision, increments when changes are made to the WordPress DB schema.