Edit File by line

Deprecated: str_replace(): Passing null to parameter #2 ($replace) of type array|string is deprecated in /home/sportsfever/public_html/filemanger/function.php on line 93
/home/sportsfe.../httpdocs/wp-conte.../plugins/wp-smush.../core/api
File: class-hub.php
<?php
[0] Fix | Delete
/**
[1] Fix | Delete
* WPMU DEV Hub endpoints.
[2] Fix | Delete
*
[3] Fix | Delete
* Class allows syncing plugin data with the Hub.
[4] Fix | Delete
*
[5] Fix | Delete
* @since 3.7.0
[6] Fix | Delete
* @package Smush\Core\Api
[7] Fix | Delete
*/
[8] Fix | Delete
[9] Fix | Delete
namespace Smush\Core\Api;
[10] Fix | Delete
[11] Fix | Delete
use Smush\Core\Array_Utils;
[12] Fix | Delete
use Smush\Core\Settings;
[13] Fix | Delete
use WP_Smush;
[14] Fix | Delete
[15] Fix | Delete
if ( ! defined( 'WPINC' ) ) {
[16] Fix | Delete
die;
[17] Fix | Delete
}
[18] Fix | Delete
[19] Fix | Delete
/**
[20] Fix | Delete
* Class Hub
[21] Fix | Delete
*/
[22] Fix | Delete
class Hub {
[23] Fix | Delete
[24] Fix | Delete
/**
[25] Fix | Delete
* Endpoints array.
[26] Fix | Delete
*
[27] Fix | Delete
* @since 3.7.0
[28] Fix | Delete
* @var array
[29] Fix | Delete
*/
[30] Fix | Delete
private $endpoints = array(
[31] Fix | Delete
'get_stats',
[32] Fix | Delete
'import_settings',
[33] Fix | Delete
'export_settings',
[34] Fix | Delete
);
[35] Fix | Delete
[36] Fix | Delete
/**
[37] Fix | Delete
* @var Array_Utils
[38] Fix | Delete
*/
[39] Fix | Delete
private $array_utils;
[40] Fix | Delete
[41] Fix | Delete
/**
[42] Fix | Delete
* Hub constructor.
[43] Fix | Delete
*
[44] Fix | Delete
* @since 3.7.0
[45] Fix | Delete
*/
[46] Fix | Delete
public function __construct() {
[47] Fix | Delete
$this->array_utils = new Array_Utils();
[48] Fix | Delete
[49] Fix | Delete
add_filter( 'wdp_register_hub_action', array( $this, 'add_endpoints' ) );
[50] Fix | Delete
}
[51] Fix | Delete
[52] Fix | Delete
/**
[53] Fix | Delete
* Add Hub endpoints.
[54] Fix | Delete
*
[55] Fix | Delete
* Every Hub Endpoint name is build following the structure: 'smush-$endpoint-$action'
[56] Fix | Delete
*
[57] Fix | Delete
* @since 3.7.0
[58] Fix | Delete
* @param array $actions Endpoint action.
[59] Fix | Delete
* @return array
[60] Fix | Delete
*/
[61] Fix | Delete
public function add_endpoints( $actions ) {
[62] Fix | Delete
foreach ( $this->endpoints as $endpoint ) {
[63] Fix | Delete
$actions[ "smush_{$endpoint}" ] = array( $this, 'action_' . $endpoint );
[64] Fix | Delete
}
[65] Fix | Delete
[66] Fix | Delete
return $actions;
[67] Fix | Delete
}
[68] Fix | Delete
[69] Fix | Delete
/**
[70] Fix | Delete
* Retrieve data for endpoint.
[71] Fix | Delete
*
[72] Fix | Delete
* @since 3.7.0
[73] Fix | Delete
* @param array $params Parameters.
[74] Fix | Delete
* @param string $action Action.
[75] Fix | Delete
*/
[76] Fix | Delete
public function action_get_stats( $params, $action ) {
[77] Fix | Delete
$status = array();
[78] Fix | Delete
$core = WP_Smush::get_instance()->core();
[79] Fix | Delete
$settings = Settings::get_instance();
[80] Fix | Delete
[81] Fix | Delete
$status['cdn'] = $settings->is_cdn_active();
[82] Fix | Delete
$status['lossy'] = $settings->get_lossy_level_setting();
[83] Fix | Delete
[84] Fix | Delete
$lazy = $settings->get_setting( 'wp-smush-lazy_load' );
[85] Fix | Delete
[86] Fix | Delete
$status['lazy'] = array(
[87] Fix | Delete
'enabled' => $core->mod->lazy->is_active(),
[88] Fix | Delete
'native' => is_array( $lazy ) && isset( $lazy['native'] ) ? $lazy['native'] : false,
[89] Fix | Delete
);
[90] Fix | Delete
[91] Fix | Delete
$global_stats = $core->get_global_stats();
[92] Fix | Delete
// Total, Smushed, Unsmushed, Savings.
[93] Fix | Delete
$status['count_total'] = $this->array_utils->get_array_value( $global_stats, 'count_total' );
[94] Fix | Delete
$status['count_smushed'] = $this->array_utils->get_array_value( $global_stats, 'count_smushed' );
[95] Fix | Delete
// Considering the images to be resmushed.
[96] Fix | Delete
$status['count_unsmushed'] = $this->array_utils->get_array_value( $global_stats, 'count_unsmushed' );
[97] Fix | Delete
$status['savings'] = $this->get_savings_stats( $global_stats );
[98] Fix | Delete
[99] Fix | Delete
$status['dir'] = $this->array_utils->get_array_value( $global_stats, 'savings_dir_smush' );
[100] Fix | Delete
[101] Fix | Delete
wp_send_json_success( (object) $status );
[102] Fix | Delete
}
[103] Fix | Delete
[104] Fix | Delete
private function get_savings_stats( $global_stats ) {
[105] Fix | Delete
// TODO: Is better to update the new change on hub?
[106] Fix | Delete
$map_stats_keys = array(
[107] Fix | Delete
'size_before' => 'size_before',
[108] Fix | Delete
'size_after' => 'size_after',
[109] Fix | Delete
'percent' => 'savings_percent',
[110] Fix | Delete
'human' => 'human_bytes',
[111] Fix | Delete
'bytes' => 'savings_bytes',
[112] Fix | Delete
'total_images' => 'count_images',
[113] Fix | Delete
'resize_count' => 'count_resize',
[114] Fix | Delete
'resize_savings' => 'savings_resize',
[115] Fix | Delete
'conversion_savings' => 'savings_conversion',
[116] Fix | Delete
);
[117] Fix | Delete
[118] Fix | Delete
$hub_savings_stats = array();
[119] Fix | Delete
foreach ( $map_stats_keys as $hub_key => $global_stats_key ) {
[120] Fix | Delete
$hub_savings_stats[ $hub_key ] = $this->array_utils->get_array_value( $global_stats, $global_stats_key );
[121] Fix | Delete
}
[122] Fix | Delete
[123] Fix | Delete
return $hub_savings_stats;
[124] Fix | Delete
}
[125] Fix | Delete
[126] Fix | Delete
/**
[127] Fix | Delete
* Applies the given config sent by the Hub via the Dashboard plugin.
[128] Fix | Delete
*
[129] Fix | Delete
* @since 3.8.5
[130] Fix | Delete
*
[131] Fix | Delete
* @param object $config_data The config sent by the Hub.
[132] Fix | Delete
*/
[133] Fix | Delete
public function action_import_settings( $config_data ) {
[134] Fix | Delete
if ( empty( $config_data->configs ) ) {
[135] Fix | Delete
wp_send_json_error(
[136] Fix | Delete
array(
[137] Fix | Delete
'message' => __( 'Missing config data', 'wp-smushit' ),
[138] Fix | Delete
)
[139] Fix | Delete
);
[140] Fix | Delete
}
[141] Fix | Delete
[142] Fix | Delete
// The Hub returns an object, we use an array.
[143] Fix | Delete
$config_array = json_decode( wp_json_encode( $config_data->configs ), true );
[144] Fix | Delete
[145] Fix | Delete
$configs_handler = new \Smush\Core\Configs();
[146] Fix | Delete
$configs_handler->apply_config( $config_array );
[147] Fix | Delete
[148] Fix | Delete
wp_send_json_success();
[149] Fix | Delete
}
[150] Fix | Delete
[151] Fix | Delete
/**
[152] Fix | Delete
* Exports the current settings as a config for the Hub.
[153] Fix | Delete
*
[154] Fix | Delete
* @since 3.8.5
[155] Fix | Delete
*/
[156] Fix | Delete
public function action_export_settings() {
[157] Fix | Delete
$configs_handler = new \Smush\Core\Configs();
[158] Fix | Delete
$config = $configs_handler->get_config_from_current();
[159] Fix | Delete
[160] Fix | Delete
wp_send_json_success( $config['config'] );
[161] Fix | Delete
}
[162] Fix | Delete
}
[163] Fix | Delete
[164] Fix | Delete
It is recommended that you Edit text format, this type of Fix handles quite a lot in one request
Function