Themes: Display a message in theme updates list if an update requires a higher version of PHP or WordPress.

This applies to the WordPress Updates screen.

Props afragen, SergeyBiryukov.
Fixes #48491.
Built from https://develop.svn.wordpress.org/trunk@48654


git-svn-id: http://core.svn.wordpress.org/trunk@48416 1a063a9b-81f0-0310-95a4-ce76da25c4cd
This commit is contained in:
Sergey Biryukov 2020-07-28 01:02:04 +00:00
parent ab6c396531
commit db175a9868
2 changed files with 93 additions and 19 deletions

View File

@ -429,7 +429,9 @@ function list_plugin_updates() {
$plugin_data->Version, $plugin_data->Version,
$plugin_data->update->new_version $plugin_data->update->new_version
); );
echo ' ' . $details . $compat . $upgrade_notice; echo ' ' . $details . $compat . $upgrade_notice;
if ( in_array( $plugin_file, $auto_updates, true ) ) { if ( in_array( $plugin_file, $auto_updates, true ) ) {
echo $auto_update_notice; echo $auto_update_notice;
} }
@ -499,11 +501,79 @@ function list_theme_updates() {
} }
foreach ( $themes as $stylesheet => $theme ) { foreach ( $themes as $stylesheet => $theme ) {
$checkbox_id = 'checkbox_' . md5( $theme->get( 'Name' ) ); $requires_wp = isset( $theme->update['requires'] ) ? $theme->update['requires'] : null;
$requires_php = isset( $theme->update['requires_php'] ) ? $theme->update['requires_php'] : null;
$compatible_wp = is_wp_version_compatible( $requires_wp );
$compatible_php = is_php_version_compatible( $requires_php );
$compat = '';
if ( ! $compatible_wp && ! $compatible_php ) {
$compat .= '<br>' . __( 'This update doesn&#8217;t work with your versions of WordPress and PHP.' ) . '&nbsp;';
if ( current_user_can( 'update_core' ) && current_user_can( 'update_php' ) ) {
$compat .= sprintf(
/* translators: 1: URL to WordPress Updates screen, 2: URL to Update PHP page. */
__( '<a href="%1$s">Please update WordPress</a>, and then <a href="%2$s">learn more about updating PHP</a>.' ),
self_admin_url( 'update-core.php' ),
esc_url( wp_get_update_php_url() )
);
$annotation = wp_get_update_php_annotation();
if ( $annotation ) {
$compat .= '</p><p><em>' . $annotation . '</em>';
}
} elseif ( current_user_can( 'update_core' ) ) {
$compat .= sprintf(
/* translators: %s: URL to WordPress Updates screen. */
__( '<a href="%s">Please update WordPress</a>.' ),
self_admin_url( 'update-core.php' )
);
} elseif ( current_user_can( 'update_php' ) ) {
$compat .= sprintf(
/* translators: %s: URL to Update PHP page. */
__( '<a href="%s">Learn more about updating PHP</a>.' ),
esc_url( wp_get_update_php_url() )
);
$annotation = wp_get_update_php_annotation();
if ( $annotation ) {
$compat .= '</p><p><em>' . $annotation . '</em>';
}
}
} elseif ( ! $compatible_wp ) {
$compat .= '<br>' . __( 'This update doesn&#8217;t work with your version of WordPress.' ) . '&nbsp;';
if ( current_user_can( 'update_core' ) ) {
$compat .= sprintf(
/* translators: %s: URL to WordPress Updates screen. */
__( '<a href="%s">Please update WordPress</a>.' ),
self_admin_url( 'update-core.php' )
);
}
} elseif ( ! $compatible_php ) {
$compat .= '<br>' . __( 'This update doesn&#8217;t work with your version of PHP.' ) . '&nbsp;';
if ( current_user_can( 'update_php' ) ) {
$compat .= sprintf(
/* translators: %s: URL to Update PHP page. */
__( '<a href="%s">Learn more about updating PHP</a>.' ),
esc_url( wp_get_update_php_url() )
);
$annotation = wp_get_update_php_annotation();
if ( $annotation ) {
$compat .= '</p><p><em>' . $annotation . '</em>';
}
}
}
$checkbox_id = 'checkbox_' . md5( $theme->get( 'Name' ) );
?> ?>
<tr> <tr>
<td class="check-column"> <td class="check-column">
<?php if ( $compatible_wp && $compatible_php ) : ?>
<input type="checkbox" name="checked[]" id="<?php echo $checkbox_id; ?>" value="<?php echo esc_attr( $stylesheet ); ?>" /> <input type="checkbox" name="checked[]" id="<?php echo $checkbox_id; ?>" value="<?php echo esc_attr( $stylesheet ); ?>" />
<label for="<?php echo $checkbox_id; ?>" class="screen-reader-text"> <label for="<?php echo $checkbox_id; ?>" class="screen-reader-text">
<?php <?php
@ -511,6 +581,7 @@ function list_theme_updates() {
printf( __( 'Select %s' ), $theme->display( 'Name' ) ); printf( __( 'Select %s' ), $theme->display( 'Name' ) );
?> ?>
</label> </label>
<?php endif; ?>
</td> </td>
<td class="plugin-title"><p> <td class="plugin-title"><p>
<img src="<?php echo esc_url( $theme->get_screenshot() ); ?>" width="85" height="64" class="updates-table-screenshot" alt="" /> <img src="<?php echo esc_url( $theme->get_screenshot() ); ?>" width="85" height="64" class="updates-table-screenshot" alt="" />
@ -522,6 +593,9 @@ function list_theme_updates() {
$theme->display( 'Version' ), $theme->display( 'Version' ),
$theme->update['new_version'] $theme->update['new_version']
); );
echo ' ' . $compat;
if ( in_array( $stylesheet, $auto_updates, true ) ) { if ( in_array( $stylesheet, $auto_updates, true ) ) {
echo $auto_update_notice; echo $auto_update_notice;
} }

View File

@ -13,7 +13,7 @@
* *
* @global string $wp_version * @global string $wp_version
*/ */
$wp_version = '5.5-beta4-48653'; $wp_version = '5.5-beta4-48654';
/** /**
* Holds the WordPress DB revision, increments when changes are made to the WordPress DB schema. * Holds the WordPress DB revision, increments when changes are made to the WordPress DB schema.