namespace ImageOptimization\Modules\Oauth\Components;
use ImageOptimization\Classes\Utils;
use ImageOptimization\Modules\Oauth\Classes\Data;
if ( ! defined( 'ABSPATH' ) ) {
exit; // Exit if accessed directly.
const ON_CONNECT = 'image-optimizer-connect';
const ON_DISCONNECT = 'image-optimizer-disconnect';
const ON_ACTIVATE = 'image-optimizer-activate';
const ON_DEACTIVATE = 'image-optimizer-deactivate';
* @param array $event_data
public static function event( array $event_data = [] ): void {
$event_name = current_action();
// only allow specific events
if ( ! in_array( $event_name, self::get_checkpoints() ) ) {
$response = Utils::get_api_client()->make_request(
'event_name' => $event_name,
'event_data' => $event_data,
public static function get_checkpoints(): array {
public function __construct() {
foreach ( self::get_checkpoints() as $checkpoint ) {
add_action( $checkpoint, [ __CLASS__, 'event' ], 10, 0 );