private function cleanup_extra_files($version_from, $version_to, $locale)
{
if (!$version_from || !$version_to) {
WP_CLI::warning('Failed to find WordPress version. Please cleanup files manually.');
return;
}
$old_checksums = self::get_core_checksums($version_from, $locale ? $locale : 'en_US');
$new_checksums = self::get_core_checksums($version_to, $locale ? $locale : 'en_US');
if (empty($old_checksums) || empty($new_checksums)) {
WP_CLI::warning('Failed to fetch checksums. Please cleanup files manually.');
return;
}
$files_to_remove = array_diff(array_keys($old_checksums), array_keys($new_checksums));
if (!empty($files_to_remove)) {
WP_CLI::log('Cleaning up files...');
$count = 0;
foreach ($files_to_remove as $file) {
// wp-content should be considered user data
if (0 === stripos($file, 'wp-content')) {
continue;
}
if (file_exists(ABSPATH . $file)) {
unlink(ABSPATH . $file);
WP_CLI::log('File removed: ' . $file);
$count++;
}
}
if ($count) {
WP_CLI::log(number_format($count) . ' files cleaned up.');
} else {
WP_CLI::log('No files found that need cleaned up.');
}
}
}