Edit File by line
/home/zeestwma/ajeebong.../wp-conte.../plugins/image-op.../modules/optimiza.../componen...
File: single-optimization.php
<?php
[0] Fix | Delete
[1] Fix | Delete
namespace ImageOptimization\Modules\Optimization\Components;
[2] Fix | Delete
[3] Fix | Delete
use ImageOptimization\Classes\Async_Operation\Async_Operation_Hook;
[4] Fix | Delete
use ImageOptimization\Classes\Image\{
[5] Fix | Delete
Image,
[6] Fix | Delete
Image_Meta,
[7] Fix | Delete
Image_Optimization_Error_Type,
[8] Fix | Delete
Image_Restore,
[9] Fix | Delete
Image_Status
[10] Fix | Delete
};
[11] Fix | Delete
use ImageOptimization\Classes\Logger;
[12] Fix | Delete
use ImageOptimization\Classes\Exceptions\Quota_Exceeded_Error;
[13] Fix | Delete
use ImageOptimization\Modules\Connect\Classes\Exceptions\Connection_Error;
[14] Fix | Delete
use ImageOptimization\Modules\Optimization\Classes\Exceptions\Image_File_Already_Exists_Error;
[15] Fix | Delete
use ImageOptimization\Modules\Optimization\Classes\Optimize_Image;
[16] Fix | Delete
use Throwable;
[17] Fix | Delete
[18] Fix | Delete
if ( ! defined( 'ABSPATH' ) ) {
[19] Fix | Delete
exit; // Exit if accessed directly.
[20] Fix | Delete
}
[21] Fix | Delete
[22] Fix | Delete
class Single_Optimization {
[23] Fix | Delete
/** @async */
[24] Fix | Delete
public function optimize_single_image( int $image_id ) {
[25] Fix | Delete
try {
[26] Fix | Delete
$oi = new Optimize_Image(
[27] Fix | Delete
$image_id,
[28] Fix | Delete
'manual',
[29] Fix | Delete
);
[30] Fix | Delete
[31] Fix | Delete
$oi->optimize();
[32] Fix | Delete
} catch ( Quota_Exceeded_Error $qe ) {
[33] Fix | Delete
( new Image_Meta( $image_id ) )
[34] Fix | Delete
->set_status( Image_Status::OPTIMIZATION_FAILED )
[35] Fix | Delete
->set_error_type( Image_Optimization_Error_Type::QUOTA_EXCEEDED )
[36] Fix | Delete
->save();
[37] Fix | Delete
} catch ( Connection_Error $ce ) {
[38] Fix | Delete
( new Image_Meta( $image_id ) )
[39] Fix | Delete
->set_status( Image_Status::OPTIMIZATION_FAILED )
[40] Fix | Delete
->set_error_type( Image_Optimization_Error_Type::CONNECTION_ERROR )
[41] Fix | Delete
->save();
[42] Fix | Delete
} catch ( Image_File_Already_Exists_Error $fe ) {
[43] Fix | Delete
( new Image_Meta( $image_id ) )
[44] Fix | Delete
->set_status( Image_Status::OPTIMIZATION_FAILED )
[45] Fix | Delete
->set_error_type( Image_Optimization_Error_Type::FILE_ALREADY_EXISTS )
[46] Fix | Delete
->save();
[47] Fix | Delete
} catch ( Throwable $t ) {
[48] Fix | Delete
Logger::error( 'Single optimization error. Reason: ' . $t->getMessage() );
[49] Fix | Delete
[50] Fix | Delete
Retry::maybe_retry_optimization( $image_id );
[51] Fix | Delete
}
[52] Fix | Delete
}
[53] Fix | Delete
[54] Fix | Delete
/** @async */
[55] Fix | Delete
public function reoptimize_single_image( int $image_id ) {
[56] Fix | Delete
try {
[57] Fix | Delete
$image = new Image( $image_id );
[58] Fix | Delete
[59] Fix | Delete
if ( $image->can_be_restored() ) {
[60] Fix | Delete
Image_Restore::restore( $image_id, true );
[61] Fix | Delete
}
[62] Fix | Delete
[63] Fix | Delete
$oi = new Optimize_Image(
[64] Fix | Delete
$image_id,
[65] Fix | Delete
'manual',
[66] Fix | Delete
null,
[67] Fix | Delete
true
[68] Fix | Delete
);
[69] Fix | Delete
[70] Fix | Delete
$oi->optimize();
[71] Fix | Delete
} catch ( Quota_Exceeded_Error $qe ) {
[72] Fix | Delete
( new Image_Meta( $image_id ) )
[73] Fix | Delete
->set_status( Image_Status::REOPTIMIZING_FAILED )
[74] Fix | Delete
->set_error_type( Image_Optimization_Error_Type::QUOTA_EXCEEDED )
[75] Fix | Delete
->save();
[76] Fix | Delete
} catch ( Connection_Error $ce ) {
[77] Fix | Delete
( new Image_Meta( $image_id ) )
[78] Fix | Delete
->set_status( Image_Status::OPTIMIZATION_FAILED )
[79] Fix | Delete
->set_error_type( Image_Optimization_Error_Type::CONNECTION_ERROR )
[80] Fix | Delete
->save();
[81] Fix | Delete
} catch ( Image_File_Already_Exists_Error $fe ) {
[82] Fix | Delete
( new Image_Meta( $image_id ) )
[83] Fix | Delete
->set_status( Image_Status::REOPTIMIZING_FAILED )
[84] Fix | Delete
->set_error_type( Image_Optimization_Error_Type::FILE_ALREADY_EXISTS )
[85] Fix | Delete
->save();
[86] Fix | Delete
} catch ( Throwable $t ) {
[87] Fix | Delete
Logger::error( 'Single reoptimizing error. Reason: ' . $t->getMessage() );
[88] Fix | Delete
[89] Fix | Delete
Retry::maybe_retry_optimization( $image_id );
[90] Fix | Delete
}
[91] Fix | Delete
}
[92] Fix | Delete
[93] Fix | Delete
public function __construct() {
[94] Fix | Delete
add_action( Async_Operation_Hook::OPTIMIZE_SINGLE, [ $this, 'optimize_single_image' ], 3 );
[95] Fix | Delete
add_action( Async_Operation_Hook::REOPTIMIZE_SINGLE, [ $this, 'reoptimize_single_image' ] );
[96] Fix | Delete
}
[97] Fix | Delete
}
[98] Fix | Delete
[99] Fix | Delete
It is recommended that you Edit text format, this type of Fix handles quite a lot in one request
Function