optimize();
} catch ( Quota_Exceeded_Error $qe ) {
( new Image_Meta( $image_id ) )
->set_status( Image_Status::OPTIMIZATION_FAILED )
->set_error_type( Image_Optimization_Error_Type::QUOTA_EXCEEDED )
->save();
} catch ( Image_File_Already_Exists_Error $fe ) {
( new Image_Meta( $image_id ) )
->set_status( Image_Status::OPTIMIZATION_FAILED )
->set_error_type( Image_Optimization_Error_Type::FILE_ALREADY_EXISTS )
->save();
} catch ( Bulk_Token_Expired_Error | Bulk_Optimization_Token_Not_Found_Error $bte ) {
( new Image_Meta( $image_id ) )
->set_status( Image_Status::NOT_OPTIMIZED )
->save();
Bulk_Optimization_Controller::reschedule_bulk_optimization();
} catch ( Throwable $t ) {
Logger::log( Logger::LEVEL_ERROR, 'Optimization error. Reason: ' . $t->getMessage() );
( new Image_Meta( $image_id ) )
->set_status( Image_Status::OPTIMIZATION_FAILED )
->set_error_type( Image_Optimization_Error_Type::GENERIC )
->save();
} finally {
Optimization_Stats::get_image_stats( null, true );
}
}
/** @async */
public function reoptimize_bulk( int $image_id, string $operation_id ) {
try {
$image = new Image( $image_id );
if ( $image->can_be_restored() ) {
Image_Restore::restore( $image_id, true );
}
$bulk_token = Bulk_Optimization_Controller::get_bulk_operation_token( $operation_id );
$oi = new Optimize_Image(
$image_id,
'bulk',
$bulk_token
);
$oi->optimize();
} catch ( Quota_Exceeded_Error $qe ) {
( new Image_Meta( $image_id ) )
->set_status( Image_Status::REOPTIMIZING_FAILED )
->set_error_type( Image_Optimization_Error_Type::QUOTA_EXCEEDED )
->save();
} catch ( Image_File_Already_Exists_Error $fe ) {
( new Image_Meta( $image_id ) )
->set_status( Image_Status::REOPTIMIZING_FAILED )
->set_error_type( Image_Optimization_Error_Type::FILE_ALREADY_EXISTS )
->save();
} catch ( Bulk_Token_Expired_Error | Bulk_Optimization_Token_Not_Found_Error $bte ) {
( new Image_Meta( $image_id ) )
->set_status( Image_Status::NOT_OPTIMIZED )
->save();
Bulk_Optimization_Controller::reschedule_bulk_reoptimization();
} catch ( Throwable $t ) {
Logger::log( Logger::LEVEL_ERROR, 'Reoptimization error. Reason: ' . $t->getMessage() );
( new Image_Meta( $image_id ) )
->set_status( Image_Status::REOPTIMIZING_FAILED )
->set_error_type( Image_Optimization_Error_Type::GENERIC )
->save();
} finally {
Optimization_Stats::get_image_stats( null, true );
}
}
/**
* Renders the bulk optimization notice
*
* @return void
*/
public function render_bulk_optimization_notice() {
try {
$is_in_progress = Bulk_Optimization_Controller::is_optimization_in_progress();
} catch ( Async_Operation_Exception $aoe ) {
$is_in_progress = false;
}
?>