39 lines
1.0 KiB
PHP
39 lines
1.0 KiB
PHP
<?php
|
|
|
|
namespace Smush\Core;
|
|
|
|
use Smush\Core\Stats\Global_Stats;
|
|
|
|
class Optimization_Controller extends Controller {
|
|
/**
|
|
* @var Global_Stats
|
|
*/
|
|
private $global_stats;
|
|
|
|
public function __construct() {
|
|
$this->global_stats = Global_Stats::get();
|
|
|
|
$this->register_action( 'wp_smush_image_sizes_changed', array( $this, 'mark_global_stats_as_outdated' ) );
|
|
$this->register_action( 'wp_smush_settings_updated', array(
|
|
$this,
|
|
'maybe_mark_global_stats_as_outdated',
|
|
), 10, 2 );
|
|
|
|
// TODO: handle auto optimization when media item is uploaded
|
|
// TODO: handle bulk smush ajax
|
|
}
|
|
|
|
public function mark_global_stats_as_outdated() {
|
|
$this->global_stats->mark_as_outdated();
|
|
}
|
|
|
|
public function maybe_mark_global_stats_as_outdated( $old_settings, $settings ) {
|
|
$old_original = ! empty( $old_settings['original'] );
|
|
$new_original = ! empty( $settings['original'] );
|
|
$original_status_changed = $old_original !== $new_original;
|
|
if ( $original_status_changed ) {
|
|
$this->mark_global_stats_as_outdated();
|
|
}
|
|
}
|
|
}
|