The install_plugin_overwrite_comparison WordPress PHP Filter allows you to customize the comparison table output when overwriting a plugin package during an upload.
Usage
add_filter('install_plugin_overwrite_comparison', 'my_custom_comparison', 10, 3);
function my_custom_comparison($table, $current_plugin_data, $new_plugin_data) {
// your custom code here
return $table;
}
Parameters
$table(string): The output table with Name, Version, Author, RequiresWP, and RequiresPHP info.$current_plugin_data(array): Array with current plugin data.$new_plugin_data(array): Array with uploaded plugin data.
More information
See WordPress Developer Resources: install_plugin_overwrite_comparison
Examples
Add custom data to the comparison table
This example adds a custom “Tested up to” field to the comparison table.
add_filter('install_plugin_overwrite_comparison', 'add_tested_up_to_field', 10, 3);
function add_tested_up_to_field($table, $current_plugin_data, $new_plugin_data) {
$tested_field = "<tr><td>Tested up to:</td><td>{$current_plugin_data['Tested']}</td><td>{$new_plugin_data['Tested']}</td></tr>";
return $table . $tested_field;
}
Change table style
This example changes the table style by adding custom CSS classes.
add_filter('install_plugin_overwrite_comparison', 'change_table_style', 10, 3);
function change_table_style($table, $current_plugin_data, $new_plugin_data) {
$table = str_replace('<table>', '<table class="my-custom-table">', $table);
return $table;
}
Highlight updated information
This example highlights updated information in the table by comparing the current and new plugin data.
add_filter('install_plugin_overwrite_comparison', 'highlight_updated_info', 10, 3);
function highlight_updated_info($table, $current_plugin_data, $new_plugin_data) {
if ($current_plugin_data['Version'] != $new_plugin_data['Version']) {
$table = str_replace($new_plugin_data['Version'], "<strong>{$new_plugin_data['Version']}</strong>", $table);
}
return $table;
}
Remove author information from the table
This example removes the author information from the comparison table.
add_filter('install_plugin_overwrite_comparison', 'remove_author_info', 10, 3);
function remove_author_info($table, $current_plugin_data, $new_plugin_data) {
$pattern = '/<tr><td>Author:<\/td><td>.*<\/td><td>.*<\/td><\/tr>/';
return preg_replace($pattern, '', $table);
}
Add a custom message based on version difference
This example adds a custom message based on the version difference between the current and new plugin.
add_filter('install_plugin_overwrite_comparison', 'add_custom_message', 10, 3);
function add_custom_message($table, $current_plugin_data, $new_plugin_data) {
$current_version = $current_plugin_data['Version'];
$new_version = $new_plugin_data['Version'];
if (version_compare($new_version, $current_version, '>')) {
$message = "<p>Great! You're updating to a newer version.</p>";
} else if (version_compare($new_version, $current_version, '<')) {
$message = "<p>Warning! You're downgrading to an older version.</p>";
} else {
$message = "<p>You're uploading the same version.</p>";
}
return $table . $message;
}
Add a custom message based on the RequiresWP field
This example adds a custom message based on whether the uploaded plugin supports the current WordPress version.
add_filter('install_plugin_overwrite_comparison', 'check_wp_compatibility', 10, 3);
function check_wp_compatibility($table, $current_plugin_data, $new_plugin_data) {
$current_wp_version = get_bloginfo('version');
$requires_wp = $new_plugin_data['RequiresWP'];
if (version_compare($current_wp_version, $requires_wp, '>=')) {
$message = "<p>Great! The uploaded plugin is compatible with your WordPress version.</p>";
} else {
$message = "<p>Warning! The uploaded plugin may not be compatible with your WordPress version.</p>";
}
return $table . $message;
}