PluginProbe
Imagify Image Optimization: Optimize Images | Compress & Convert to WebP/AVIF / 1.7
Imagify Image Optimization: Optimize Images | Compress & Convert to WebP/AVIF v1.7
2.3.4 2.3.3 2.3.2 2.3.1 2.3.0 2.2.9 2.2.8 trunk 1.10 1.3.3 1.3.4 1.3.5 1.3.5.1 1.3.5.2 1.3.6 1.3.6.1 1.4 1.4.1 1.4.2 1.4.3 1.4.4 1.4.5 1.4.6 1.4.7 1.5 All 103 releases
imagify / inc / admin / heartbeat.php

heartbeat.php in Imagify Image Optimization: Optimize Images | Compress & Convert to WebP/AVIF 1.7, at inc/admin/heartbeat.php

112 lines 4.0 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2 defined( 'ABSPATH' ) || die( 'Cheatin\' uh?' );
3
4 global $pagenow;
5
6 add_filter( 'heartbeat_received', '_imagify_heartbeat_received', 10, 2 );
7 /**
8 * Prepare the data that goes back with the Heartbeat API.
9 *
10 * @since 1.4.5
11 *
12 * @param array $response The Heartbeat response.
13 * @param array $data The $_POST data sent.
14 * @return array
15 */
16 function _imagify_heartbeat_received( $response, $data ) {
17 if ( empty( $data['imagify_heartbeat'] ) || 'update_bulk_data' !== $data['imagify_heartbeat'] ) {
18 return $response;
19 }
20
21 $user = new Imagify_User();
22 $types = ! empty( $data['imagify_types'] ) && is_array( $data['imagify_types'] ) ? array_flip( $data['imagify_types'] ) : array();
23 $new_data = array(
24 // User account.
25 'unconsumed_quota' => is_wp_error( $user ) ? 0 : $user->get_percent_unconsumed_quota(),
26 // Global chart.
27 'total_attachments' => 0,
28 'unoptimized_attachments' => 0,
29 'optimized_attachments' => 0,
30 'errors_attachments' => 0,
31 // Stats block.
32 'already_optimized_attachments' => 0,
33 'original_human' => 0,
34 'optimized_human' => 0,
35 );
36
37 if ( isset( $types['library'] ) ) {
38 /**
39 * Library.
40 */
41 $saving_data = imagify_count_saving_data();
42
43 // Global chart.
44 $new_data['total_attachments'] += imagify_count_attachments();
45 $new_data['unoptimized_attachments'] += imagify_count_unoptimized_attachments();
46 $new_data['optimized_attachments'] += imagify_count_optimized_attachments();
47 $new_data['errors_attachments'] += imagify_count_error_attachments();
48 // Stats block.
49 $new_data['already_optimized_attachments'] += $saving_data['count'];
50 $new_data['original_human'] += $saving_data['original_size'];
51 $new_data['optimized_human'] += $saving_data['optimized_size'];
52 }
53
54 if ( isset( $types['custom-folders'] ) ) {
55 /**
56 * Custom folders.
57 */
58 // Global chart.
59 $new_data['total_attachments'] += Imagify_Files_Stats::count_all_files();
60 $new_data['unoptimized_attachments'] += Imagify_Files_Stats::count_no_status_files();
61 $new_data['optimized_attachments'] += Imagify_Files_Stats::count_optimized_files();
62 $new_data['errors_attachments'] += Imagify_Files_Stats::count_error_files();
63 // Stats block.
64 $new_data['already_optimized_attachments'] += Imagify_Files_Stats::count_success_files();
65 $new_data['original_human'] += Imagify_Files_Stats::get_original_size();
66 $new_data['optimized_human'] += Imagify_Files_Stats::get_optimized_size();
67 }
68
69 /**
70 * Percentages.
71 */
72 if ( $new_data['total_attachments'] && $new_data['optimized_attachments'] ) {
73 $new_data['optimized_attachments_percent'] = round( 100 * $new_data['optimized_attachments'] / $new_data['total_attachments'] );
74 } else {
75 $new_data['optimized_attachments_percent'] = 0;
76 }
77
78 if ( $new_data['original_human'] && $new_data['optimized_human'] ) {
79 $new_data['optimized_percent'] = ceil( 100 - ( 100 * $new_data['optimized_human'] / $new_data['original_human'] ) );
80 } else {
81 $new_data['optimized_percent'] = 0;
82 }
83
84 /**
85 * Formating.
86 */
87 $new_data['already_optimized_attachments'] = number_format_i18n( $new_data['already_optimized_attachments'] );
88 $new_data['original_human'] = imagify_size_format( $new_data['original_human'], 1 );
89 $new_data['optimized_human'] = imagify_size_format( $new_data['optimized_human'], 1 );
90
91 $response['imagify_bulk_data'] = $new_data;
92
93 return $response;
94 }
95
96
97 if ( 'upload.php' === $pagenow && ! empty( $_GET['page'] ) && Imagify_Views::get_instance()->get_bulk_page_slug() === $_GET['page'] ) { // WPCS: CSRF ok.
98 add_filter( 'heartbeat_settings', '_imagify_heartbeat_settings', IMAGIFY_INT_MAX );
99 }
100 /**
101 * Update the Heartbeat API settings.
102 *
103 * @since 1.4.5
104 *
105 * @param array $settings Heartbeat API settings.
106 * @return array
107 */
108 function _imagify_heartbeat_settings( $settings ) {
109 $settings['interval'] = 30;
110 return $settings;
111 }
112