| Server IP : 172.67.75.225 / Your IP : 216.73.216.185 Web Server : nginx/1.27.1 System : Linux us-1 5.15.0-131-generic #141-Ubuntu SMP Fri Jan 10 21:18:28 UTC 2025 x86_64 User : vinodai ( 3134) PHP Version : 7.4.33 Disable Function : exec,passthru,shell_exec,system,proc_open,popen,parse_ini_file,show_source MySQL : OFF | cURL : ON | WGET : OFF | Perl : OFF | Python : OFF | Sudo : OFF | Pkexec : OFF Directory : /storage/v1396/themastermynd/public_html/wp-content/plugins/mailpoet/lib/Cron/Workers/ |
Upload File : |
<?php declare(strict_types = 1);
namespace MailPoet\Cron\Workers;
if (!defined('ABSPATH')) exit;
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->shouldSendToMixpanel()) {
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->recordMixpanelDataSent();
return true;
}
public function getNextRunDate() {
return $this->analytics->getNextSendDateForMixpanel()->addMinutes(rand(0, 59));
}
}