Files
piratepoet/mailpoet/lib/Automation/Integrations/MailPoet/Fields/SubscriberStatisticFieldsFactory.php
Jan Jakes 6cfc808248 Add subscriber statistic fields
[MAILPOET-5172]
2023-05-17 12:36:05 +02:00

61 lines
2.1 KiB
PHP

<?php declare(strict_types = 1);
namespace MailPoet\Automation\Integrations\MailPoet\Fields;
use MailPoet\Automation\Engine\Data\Field;
use MailPoet\Automation\Integrations\MailPoet\Payloads\SubscriberPayload;
use MailPoet\Subscribers\Statistics\SubscriberStatisticsRepository;
class SubscriberStatisticFieldsFactory {
/** @var SubscriberStatisticsRepository */
private $subscriberStatisticsRepository;
public function __construct(
SubscriberStatisticsRepository $subscriberStatisticsRepository
) {
$this->subscriberStatisticsRepository = $subscriberStatisticsRepository;
}
/** @return Field[] */
public function getFields(): array {
return [
new Field(
'mailpoet:subscriber:email-sent-count',
Field::TYPE_INTEGER,
__('Email — sent count', 'mailpoet'),
function (SubscriberPayload $payload) {
$stats = $this->subscriberStatisticsRepository->getStatistics($payload->getSubscriber());
return $stats->getTotalSentCount();
}
),
new Field(
'mailpoet:subscriber:email-opened-count',
Field::TYPE_INTEGER,
__('Email — opened count', 'mailpoet'),
function (SubscriberPayload $payload) {
$stats = $this->subscriberStatisticsRepository->getStatistics($payload->getSubscriber());
return $stats->getOpenCount();
}
),
new Field(
'mailpoet:subscriber:email-machine-opened-count',
Field::TYPE_INTEGER,
__('Email — machine opened count', 'mailpoet'),
function (SubscriberPayload $payload) {
$stats = $this->subscriberStatisticsRepository->getStatistics($payload->getSubscriber());
return $stats->getMachineOpenCount();
}
),
new Field(
'mailpoet:subscriber:email-clicked-count',
Field::TYPE_INTEGER,
__('Email — clicked count', 'mailpoet'),
function (SubscriberPayload $payload) {
$stats = $this->subscriberStatisticsRepository->getStatistics($payload->getSubscriber());
return $stats->getClickCount();
}
),
];
}
}