✅ Fixed bulk conversion getting stuck on missing files ✅ Added robust error handling and timeout protection ✅ Improved JavaScript response parsing ✅ Added file existence validation ✅ Fixed missing PHP class imports ✅ Added comprehensive try-catch error recovery 🔧 Key fixes: - File existence checks before conversion attempts - 30-second timeout protection per file - Graceful handling of 500 errors and JSON parsing issues - Automatic continuation to next file on failures - Cache busting for JavaScript updates 🎯 Result: Bulk conversion now completes successfully even with missing files 🚀 Generated with Claude Code (https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
43 lines
1.2 KiB
PHP
43 lines
1.2 KiB
PHP
<?php
|
|
|
|
namespace WebPExpress;
|
|
use \WebPExpress\Convert;
|
|
use \WebPExpress\Mime;
|
|
use \WebPExpress\SanityCheck;
|
|
|
|
class HandleDeleteFileHook
|
|
{
|
|
|
|
/**
|
|
* hook: wp_delete_file
|
|
*/
|
|
public static function deleteAssociatedWebP($filename)
|
|
{
|
|
try {
|
|
$filename = SanityCheck::absPathExistsAndIsFileInDocRoot($filename);
|
|
|
|
$mimeTypes = [
|
|
'image/jpeg',
|
|
'image/png',
|
|
];
|
|
if (!Mime::isOneOfTheseImageMimeTypes($filename, $mimeTypes)) {
|
|
return $filename;
|
|
}
|
|
|
|
$config = Config::loadConfigAndFix();
|
|
$destination = Convert::getDestination($filename, $config);
|
|
if (@file_exists($destination)) {
|
|
if (@unlink($destination)) {
|
|
Convert::updateBiggerThanOriginalMark($filename, $destination, $config);
|
|
} else {
|
|
error_log('WebP Express failed deleting webp:' . $destination);
|
|
}
|
|
}
|
|
} catch (SanityException $e) {
|
|
// fail silently. (maybe we should write to debug log instead?)
|
|
}
|
|
|
|
return $filename;
|
|
}
|
|
}
|