1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
|
<?php /** * WPMU DEV Hub endpoints. * * Class allows syncing plugin data with the Hub. * * @since 3.7.0 * @package Smush\Core\Api */
namespace Smush\Core\Api;
use Smush\Core\Settings;
if ( ! defined( 'WPINC' ) ) { die; }
/** * Class Hub */ class Hub {
/** * Endpoints array. * * @since 3.7.0 * @var array */ private $endpoints = array( 'get_stats', );
/** * Hub constructor. * * @since 3.7.0 */ public function __construct() { add_filter( 'wdp_register_hub_action', array( $this, 'add_endpoints' ) ); }
/** * Add Hub endpoints. * * Every Hub Endpoint name is build following the structure: 'smush-$endpoint-$action' * * @since 3.7.0 * @param array $actions Endpoint action. * * @return array */ public function add_endpoints( $actions ) { foreach ( $this->endpoints as $endpoint ) { $actions[ "smush_{$endpoint}" ] = array( $this, 'action_' . $endpoint ); }
return $actions; }
/** * Retrieve data for endpoint. * * @since 3.7.0 * @param array $params Parameters. * @param string $action Action. */ public function action_get_stats( $params, $action ) { $status = array(); $settings = Settings::get_instance();
$status['cdn'] = $settings->get( 'cdn' ); $status['super'] = $settings->get( 'lossy' );
$lazy = $settings->get_setting( WP_SMUSH_PREFIX . 'lazy_load' );
$status['lazy'] = array( 'enabled' => $settings->get( 'lazy_load' ), 'native' => $lazy['native'], );
$core = \WP_Smush::get_instance()->core();
if ( ! isset( $core->stats ) ) { // Setup stats, if not set already. $core->setup_global_stats(); } // Total, Smushed, Unsmushed, Savings. $status['count_total'] = $core->total_count; $status['count_smushed'] = $core->smushed_count; // Considering the images to be resmushed. $status['count_unsmushed'] = $core->remaining_count; $status['savings'] = $core->stats;
$status['dir'] = $core->dir_stats;
wp_send_json_success( (object) $status ); }
}
|