updated plugin W3 Total Cache
version 2.7.0
This commit is contained in:
@ -0,0 +1,118 @@
|
||||
<?php
|
||||
/**
|
||||
* File: Extension_ImageService_Widget.php
|
||||
*
|
||||
* @package W3TC
|
||||
*
|
||||
* @since X.X.X
|
||||
*/
|
||||
|
||||
namespace W3TC;
|
||||
|
||||
/**
|
||||
* Class Extension_ImageService_Widget
|
||||
*
|
||||
* @since X.X.X
|
||||
*/
|
||||
class Extension_ImageService_Widget {
|
||||
/**
|
||||
* Dashboard setup action
|
||||
*
|
||||
* @since X.X.X
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public static function admin_init_w3tc_dashboard() {
|
||||
$config = Dispatcher::config();
|
||||
$is_pro = Util_Environment::is_w3tc_pro( $config );
|
||||
$o = new Extension_ImageService_Widget();
|
||||
|
||||
add_action( 'w3tc_widget_setup', array( $o, 'wp_dashboard_setup' ), 300 );
|
||||
add_action( 'w3tc_network_dashboard_setup', array( $o, 'wp_dashboard_setup' ), 300 );
|
||||
|
||||
if ( ! $config->is_extension_active( 'imageservice' ) ) {
|
||||
// If extension is inactive don't load data or chart.js. This will show instead show an "enable" button with sample background.
|
||||
return;
|
||||
}
|
||||
|
||||
wp_enqueue_script( 'w3tc-dashboard', plugins_url( 'pub/js/google-charts.js', W3TC_FILE ), array(), W3TC_VERSION, true );
|
||||
|
||||
$ipa = new Extension_ImageService_Plugin_Admin();
|
||||
// Get WebP count data.
|
||||
$counts = $ipa->get_counts();
|
||||
// Strip total data that won't be used in pie chart.
|
||||
$counts = array_diff_key( $counts, array_flip( array( 'total', 'totalbytes' ) ) );
|
||||
|
||||
// Get WebP API Usage data.
|
||||
$usage = get_transient( 'w3tc_imageservice_usage' );
|
||||
// Get data via API if no transient exists.
|
||||
$usage = empty( $usage ) ? Extension_ImageService_Plugin::get_api()->get_usage() : $usage;
|
||||
// Strip timestamp.
|
||||
unset( $usage['updated_at'] );
|
||||
|
||||
// Validate hourly data. If no data then set usage to 0 and appropriate limits.
|
||||
$usage['usage_hourly'] = 'Unknown' !== $usage['usage_hourly'] ? $usage['usage_hourly'] : 0;
|
||||
$usage['limit_hourly'] = 'Unknown' !== $usage['limit_hourly'] ? $usage['limit_hourly'] : ( $is_pro ? 10000 : 100 );
|
||||
|
||||
// Validate monthly data. If no data then set usage to 0 and appropriate limits.
|
||||
// Remove if pro as we don't show a gauge for pro usage.
|
||||
if ( $is_pro ) {
|
||||
unset( $usage['usage_monthly'] );
|
||||
unset( $usage['limit_monthly'] );
|
||||
} else {
|
||||
$usage['usage_monthly'] = 'Unknown' !== $usage['usage_monthly'] ? $usage['usage_monthly'] : 0;
|
||||
$usage['limit_monthly'] = 'Unknown' !== $usage['limit_monthly'] ? $usage['limit_monthly'] : 1000;
|
||||
}
|
||||
|
||||
wp_register_script(
|
||||
'w3tc-webp-widget',
|
||||
esc_url( plugins_url( 'Extension_ImageService_Widget.js', W3TC_FILE ) ),
|
||||
array(),
|
||||
W3TC_VERSION,
|
||||
'true'
|
||||
);
|
||||
wp_localize_script(
|
||||
'w3tc-webp-widget',
|
||||
'w3tc_webp_data',
|
||||
array(
|
||||
'counts' => array(
|
||||
'data' => $counts,
|
||||
'type' => 'pie',
|
||||
),
|
||||
'api' => array(
|
||||
'data' => $usage,
|
||||
'type' => 'gauge',
|
||||
),
|
||||
)
|
||||
);
|
||||
wp_enqueue_script( 'w3tc-webp-widget' );
|
||||
}
|
||||
|
||||
/**
|
||||
* W3TC dashboard Premium Services widget.
|
||||
*
|
||||
* @since X.X.X
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function wp_dashboard_setup() {
|
||||
Util_Widget::add(
|
||||
'w3tc_imageservice',
|
||||
'<div class="w3tc-widget-w3tc-logo"></div><div class="w3tc-widget-text">' . __( 'Image Optimization Summary', 'w3-total-cache' ) . '</div>',
|
||||
array( $this, 'widget_form' ),
|
||||
null,
|
||||
'normal'
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* Premium Services widget content.
|
||||
*
|
||||
* @since X.X.X
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function widget_form() {
|
||||
include W3TC_DIR . '/Extension_ImageService_Widget_View.php';
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user