WordPress Version: 6.4
/**
* Display the upgrade themes form.
*
* @since 2.9.0
*/
function list_theme_updates()
{
$themes = get_theme_updates();
if (empty($themes)) {
echo '<h2>' . __('Themes') . '</h2>';
echo '<p>' . __('Your themes are all up to date.') . '</p>';
return;
}
$form_action = 'update-core.php?action=do-theme-upgrade';
$themes_count = count($themes);
?>
<h2>
<?php
printf('%s <span class="count">(%d)</span>', __('Themes'), number_format_i18n($themes_count));
?>
</h2>
<p><?php
_e('The following themes have new versions available. Check the ones you want to update and then click “Update Themes”.');
?></p>
<p>
<?php
printf(
/* translators: %s: Link to documentation on child themes. */
__('<strong>Please Note:</strong> Any customizations you have made to theme files will be lost. Please consider using <a href="%s">child themes</a> for modifications.'),
__('https://developer.wordpress.org/themes/advanced-topics/child-themes/')
);
?>
</p>
<form method="post" action="<?php
echo esc_url($form_action);
?>" name="upgrade-themes" class="upgrade">
<?php
wp_nonce_field('upgrade-core');
?>
<p><input id="upgrade-themes" class="button" type="submit" value="<?php
esc_attr_e('Update Themes');
?>" name="upgrade" /></p>
<table class="widefat updates-table" id="update-themes-table">
<thead>
<tr>
<td class="manage-column check-column"><input type="checkbox" id="themes-select-all" /></td>
<td class="manage-column"><label for="themes-select-all"><?php
_e('Select All');
?></label></td>
</tr>
</thead>
<tbody class="plugins">
<?php
$auto_updates = array();
if (wp_is_auto_update_enabled_for_type('theme')) {
$auto_updates = (array) get_site_option('auto_update_themes', array());
$auto_update_notice = ' | ' . wp_get_auto_update_message();
}
foreach ($themes as $stylesheet => $theme) {
$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 does not work with your versions of WordPress and PHP.') . ' ';
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>.'),
esc_url(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>.'),
esc_url(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 does not work with your version of WordPress.') . ' ';
if (current_user_can('update_core')) {
$compat .= sprintf(
/* translators: %s: URL to WordPress Updates screen. */
__('<a href="%s">Please update WordPress</a>.'),
esc_url(self_admin_url('update-core.php'))
);
}
} elseif (!$compatible_php) {
$compat .= '<br />' . __('This update does not work with your version of PHP.') . ' ';
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>
<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);
?>" />
<label for="<?php
echo $checkbox_id;
?>">
<span class="screen-reader-text">
<?php
/* translators: Hidden accessibility text. %s: Theme name. */
printf(__('Select %s'), $theme->display('Name'));
?>
</span>
</label>
<?php
}
?>
</td>
<td class="plugin-title"><p>
<img src="<?php
echo esc_url($theme->get_screenshot() . '?ver=' . $theme->version);
?>" width="85" height="64" class="updates-table-screenshot" alt="" />
<strong><?php
echo $theme->display('Name');
?></strong>
<?php
printf(
/* translators: 1: Theme version, 2: New version. */
__('You have version %1$s installed. Update to %2$s.'),
$theme->display('Version'),
$theme->update['new_version']
);
echo ' ' . $compat;
if (in_array($stylesheet, $auto_updates, true)) {
echo $auto_update_notice;
}
?>
</p></td>
</tr>
<?php
}
?>
</tbody>
<tfoot>
<tr>
<td class="manage-column check-column"><input type="checkbox" id="themes-select-all-2" /></td>
<td class="manage-column"><label for="themes-select-all-2"><?php
_e('Select All');
?></label></td>
</tr>
</tfoot>
</table>
<p><input id="upgrade-themes-2" class="button" type="submit" value="<?php
esc_attr_e('Update Themes');
?>" name="upgrade" /></p>
</form>
<?php
}