On this page
wp_check_php_version(): array|false
Checks if the user needs to update PHP.
Return
array|false Array of PHP version data. False on failure.
Source
File: wp-admin/includes/misc.php. View all references
function wp_check_php_version() {
$version = PHP_VERSION;
$key = md5( $version );
$response = get_site_transient( 'php_check_' . $key );
if ( false === $response ) {
$url = 'http://api.wordpress.org/core/serve-happy/1.0/';
if ( wp_http_supports( array( 'ssl' ) ) ) {
$url = set_url_scheme( $url, 'https' );
}
$url = add_query_arg( 'php_version', $version, $url );
$response = wp_remote_get( $url );
if ( is_wp_error( $response ) || 200 !== wp_remote_retrieve_response_code( $response ) ) {
return false;
}
/**
* Response should be an array with:
* 'recommended_version' - string - The PHP version recommended by WordPress.
* 'is_supported' - boolean - Whether the PHP version is actively supported.
* 'is_secure' - boolean - Whether the PHP version receives security updates.
* 'is_acceptable' - boolean - Whether the PHP version is still acceptable or warnings
* should be shown and an update recommended.
*/
$response = json_decode( wp_remote_retrieve_body( $response ), true );
if ( ! is_array( $response ) ) {
return false;
}
set_site_transient( 'php_check_' . $key, $response, WEEK_IN_SECONDS );
}
if ( isset( $response['is_acceptable'] ) && $response['is_acceptable'] ) {
/**
* Filters whether the active PHP version is considered acceptable by WordPress.
*
* Returning false will trigger a PHP version warning to show up in the admin dashboard to administrators.
*
* This filter is only run if the wordpress.org Serve Happy API considers the PHP version acceptable, ensuring
* that this filter can only make this check stricter, but not loosen it.
*
* @since 5.1.1
*
* @param bool $is_acceptable Whether the PHP version is considered acceptable. Default true.
* @param string $version PHP version checked.
*/
$response['is_acceptable'] = (bool) apply_filters( 'wp_is_php_version_acceptable', true, $version );
}
$response['is_lower_than_future_minimum'] = false;
// The minimum supported PHP version will be updated to 7.2. Check if the current version is lower.
if ( version_compare( $version, '7.2', '<' ) ) {
$response['is_lower_than_future_minimum'] = true;
// Force showing of warnings.
$response['is_acceptable'] = false;
}
return $response;
}
Hooks
- apply_filters( 'wp_is_php_version_acceptable',
bool $is_acceptable ,string $version ) -
Filters whether the active PHP version is considered acceptable by WordPress.
Related
Uses
| Uses | Description |
|---|---|
| set_url_scheme() wp-includes/link-template.php | Sets the scheme for a URL. |
| wp_http_supports() wp-includes/http.php | Determines if there is an HTTP Transport that can process this request. |
| wp_remote_get() wp-includes/http.php | Performs an HTTP request using the GET method and returns its response. |
| wp_remote_retrieve_response_code() wp-includes/http.php | Retrieve only the response code from the raw response. |
| wp_remote_retrieve_body() wp-includes/http.php | Retrieve only the body from the raw response. |
| set_site_transient() wp-includes/option.php | Sets/updates the value of a site transient. |
| get_site_transient() wp-includes/option.php | Retrieves the value of a site transient. |
| add_query_arg() wp-includes/functions.php | Retrieves a modified URL query string. |
| apply_filters() wp-includes/plugin.php | Calls the callback functions that have been added to a filter hook. |
| is_wp_error() wp-includes/load.php | Checks whether the given variable is a WordPress Error. |
Used By
| Used By | Description |
|---|---|
| WP_Site_Health::get_test_php_version() wp-admin/includes/class-wp-site-health.php | Tests if the supplied PHP version is supported. |
| wp_dashboard_php_nag() wp-admin/includes/dashboard.php | Displays the PHP update nag. |
| dashboard_php_nag_class() wp-admin/includes/dashboard.php | Adds an additional class to the PHP nag if the current version is insecure. |
| wp_dashboard_setup() wp-admin/includes/dashboard.php | Registers dashboard widgets. |
Changelog
| Version | Description |
|---|---|
| 5.1.1 | Added the 'wp_is_php_version_acceptable' filter. |
| 5.1.0 | Introduced. |
© 2003–2022 WordPress Foundation
Licensed under the GNU GPLv2+ License.
https://developer.wordpress.org/reference/functions/wp_check_php_version