This commit is contained in:
2026-07-02 15:54:39 -06:00
commit 9883323161
17470 changed files with 4470592 additions and 0 deletions
@@ -0,0 +1,64 @@
<?php
namespace Gravity_Forms\Gravity_SMTP\Telemetry;
use Gravity_Forms\Gravity_Tools\Logging\Logger;
use Gravity_Forms\Gravity_Tools\Utils\Utils_Service_Provider;
class Telemetry_Handler {
/**
* @var Logger
*/
protected $logger;
/**
* @var Telemetry_Snapshot_Data
*/
protected $snapshot_data;
/**
* @var Telemetry_Background_Processor
*/
protected $processor;
public function __construct( $logger, $snapshot_data, $processor ) {
$this->logger = $logger;
$this->snapshot_data = $snapshot_data;
$this->processor = $processor;
}
public function handle() {
// Only run once a week.
$last_run = get_option( 'gravitysmtp_last_telemetry_run', 0 );
$current_time = time();
if ( $current_time - $last_run < WEEK_IN_SECONDS ) {
return;
}
update_option( 'gravitysmtp_last_telemetry_run', $current_time );
$this->logger->log_debug( __METHOD__ . sprintf( '(): Enqueuing telemetry batches' ) );
$this->snapshot_data->record_data();
$all_data = $this->snapshot_data->get_existing_data();
$snapshot = $all_data['snapshot'];
// Enqueue the snapshot first, alone, to be sent to its own endpoint.
$this->processor->push_to_queue( $snapshot );
$this->processor->save()->dispatch();
// Clear saved telemetry data except the snapshot.
update_option(
$this->snapshot_data->data_setting_name,
array(
'snapshot' => $snapshot,
'events' => array(),
),
false
);
}
}