PluginProbe
Image Optimizer – Compress Images and Convert to WebP or AVIF / 1.7.7
Image Optimizer – Compress Images and Convert to WebP or AVIF v1.7.7
1.7.7 1.7.6 1.7.5 1.7.4 trunk 1.0.0 1.0.1 1.0.2 1.1.0 1.2.0 1.2.1 1.3.0 1.4.0 1.4.1 1.5.0 1.5.1 1.5.2 1.5.3 1.5.4 1.6.0 1.6.1 1.6.2 1.6.3 1.6.4 1.6.5 All 33 releases
← All changes | modules/stats/classes/stats.php +18 -43 1.6.01.7.7 View file →
@@ -4,12 +4,16 @@
4 4
5 5 use ImageOptimization\Classes\Async_Operation\{
6 6 Async_Operation,
7 7 Async_Operation_Hook,
8 - Queries\Image_Optimization_Operation_Query,
9 8 Queries\Operation_Query,
10 9 };
11 10 use ImageOptimization\Classes\Image\Image_Query_Builder;
11 +use ImageOptimization\Modules\Optimization\Classes\Bulk_Optimization\{
12 + Bulk_Optimization_Queue,
13 + Bulk_Optimization_Queue_Status,
14 + Bulk_Optimization_Queue_Type
15 +};
12 16
13 17 if ( ! defined( 'ABSPATH' ) ) {
14 18 exit; // Exit if accessed directly.
15 19 }
@@ -16,16 +20,12 @@
16 20
17 21 class Stats {
18 22 public static function calculate_global_stats(): array {
19 23 $bulk_optimization_operation_status = self::get_bulk_optimization_status();
20 - $bulk_optimization_operation_id = Async_Operation::OPERATION_STATUS_RUNNING === $bulk_optimization_operation_status
21 - ? self::get_bulk_optimization_active_operation_id()
22 - : null;
23 24
24 25 return [
25 26 'optimization_stats' => Optimization_Stats::get_image_stats(),
26 27 'bulk_optimization_status' => $bulk_optimization_operation_status,
27 - 'bulk_optimization_operation_id' => $bulk_optimization_operation_id,
28 28 'bulk_restoring_status' => self::get_bulk_restoring_status(),
29 29 'bulk_backup_removing_status' => self::get_bulk_backup_removing_status(),
30 30 'backups_exist' => self::backups_exist(),
31 31 ];
@@ -31,54 +31,29 @@
31 31 ];
32 32 }
33 33
34 34 private static function get_bulk_optimization_status(): string {
35 - $active_query = ( new Image_Optimization_Operation_Query() )
36 - ->set_hook( Async_Operation_Hook::OPTIMIZE_BULK )
37 - ->set_status( [
38 - Async_Operation::OPERATION_STATUS_PENDING,
39 - Async_Operation::OPERATION_STATUS_RUNNING,
40 - ] )
41 - ->set_limit( 1 );
35 + $queue = new Bulk_Optimization_Queue( Bulk_Optimization_Queue_Type::OPTIMIZATION );
42 36
43 - $active_operations = Async_Operation::get( $active_query );
44 -
45 - if ( empty( $active_operations ) ) {
37 + if ( ! $queue->exists() ) {
46 38 return Async_Operation::OPERATION_STATUS_NOT_STARTED;
47 39 }
48 40
49 - $operation_id = $active_operations[0]->get_args()['operation_id'];
50 - $cancelled_query = ( new Image_Optimization_Operation_Query() )
51 - ->set_hook( Async_Operation_Hook::OPTIMIZE_BULK )
52 - ->set_status( Async_Operation::OPERATION_STATUS_CANCELED )
53 - ->set_bulk_operation_id( $operation_id )
54 - ->set_limit( 1 );
41 + $queue_status = $queue->get_status();
55 42
56 - $cancelled_operations = Async_Operation::get( $cancelled_query );
43 + switch ( $queue_status ) {
44 + case Bulk_Optimization_Queue_Status::PROCESSING:
45 + case Bulk_Optimization_Queue_Status::PENDING:
46 + return Async_Operation::OPERATION_STATUS_RUNNING;
57 47
58 - if ( ! empty( $cancelled_operations ) ) {
59 - return Async_Operation::OPERATION_STATUS_CANCELED;
60 - }
48 + case Bulk_Optimization_Queue_Status::CANCELLED:
49 + return Async_Operation::OPERATION_STATUS_CANCELED;
61 50
62 - return Async_Operation::OPERATION_STATUS_RUNNING;
63 - }
64 -
65 - private static function get_bulk_optimization_active_operation_id(): ?string {
66 - $active_query = ( new Image_Optimization_Operation_Query() )
67 - ->set_hook( Async_Operation_Hook::OPTIMIZE_BULK )
68 - ->set_status( [
69 - Async_Operation::OPERATION_STATUS_PENDING,
70 - Async_Operation::OPERATION_STATUS_RUNNING,
71 - ] )
72 - ->set_limit( 1 );
73 -
74 - $active_operation = Async_Operation::get( $active_query );
75 -
76 - if ( empty( $active_operation ) ) {
77 - return null;
51 + case Bulk_Optimization_Queue_Status::COMPLETED:
52 + case Bulk_Optimization_Queue_Status::FAILED:
53 + default:
54 + return Async_Operation::OPERATION_STATUS_NOT_STARTED;
78 55 }
79 -
80 - return $active_operation[0]->get_args()['operation_id'];
81 56 }
82 57
83 58 private static function get_bulk_restoring_status(): string {
84 59 $active_query = ( new Operation_Query() )