Files
piratepoet/mailpoet/lib/Cron/Workers/Mixpanel.php
Rostislav Wolny 33f4b2d729 Replace usage of WP's current_time without gmt parameter in libs
This commit replaces usages by Carbon::now or in case we need a timestamp it
keeps current_time but adds the gtm parameter as true.
[MAILPOET-6142]
2024-08-19 15:29:42 +02:00

62 lines
1.5 KiB
PHP

<?php declare(strict_types = 1);
namespace MailPoet\Cron\Workers;
use MailPoet\Analytics\Analytics;
use MailPoet\Entities\ScheduledTaskEntity;
use Mixpanel as MixpanelLibrary;
class Mixpanel extends SimpleWorker {
const PRODUCTION_PROJECT_ID = '8cce373b255e5a76fb22d57b85db0c92';
/** @var Analytics */
private $analytics;
const TASK_TYPE = 'mixpanel';
private MixpanelLibrary $mixpanel;
public function __construct(
Analytics $analytics
) {
parent::__construct();
$this->analytics = $analytics;
$this->mixpanel = MixpanelLibrary::getInstance(self::PRODUCTION_PROJECT_ID);
$this->mixpanel->register('Platform', 'Plugin');
}
public function processTaskStrategy(ScheduledTaskEntity $task, $timer) {
return $this->maybeReportAnalyticsToMixpanel();
}
public function maybeReportAnalyticsToMixpanel(): bool {
if (!$this->analytics->shouldSend()) {
return true;
}
return $this->reportAnalyticsToMixpanel();
}
public function reportAnalyticsToMixpanel(): bool {
$publicId = $this->analytics->getPublicId();
if (strlen($publicId) < 1) {
return true;
}
$data = $this->analytics->getAnalyticsData();
$this->mixpanel->identify($publicId);
$this->mixpanel->people->set($publicId, $data);
$this->mixpanel->track('User Properties', $data);
$this->analytics->recordDataSent();
return true;
}
public function getNextRunDate() {
return $this->analytics->getNextSendDate()->addMinutes(rand(0, 59));
}
}