Add "in the last" parameter to "mailpoet:subscriber:email-clicked-count" field
[PREMIUM-253]
This commit is contained in:
@@ -51,9 +51,9 @@ class SubscriberStatisticFieldsFactory {
|
|||||||
'mailpoet:subscriber:email-clicked-count',
|
'mailpoet:subscriber:email-clicked-count',
|
||||||
Field::TYPE_INTEGER,
|
Field::TYPE_INTEGER,
|
||||||
__('Email — clicked count', 'mailpoet'),
|
__('Email — clicked count', 'mailpoet'),
|
||||||
function (SubscriberPayload $payload) {
|
function (SubscriberPayload $payload, array $params = []) {
|
||||||
$stats = $this->subscriberStatisticsRepository->getStatistics($payload->getSubscriber());
|
$startTime = $this->getStartTime($params);
|
||||||
return $stats->getClickCount();
|
return $this->subscriberStatisticsRepository->getStatisticsClickCount($payload->getSubscriber(), $startTime);
|
||||||
}
|
}
|
||||||
),
|
),
|
||||||
];
|
];
|
||||||
|
@@ -113,6 +113,10 @@ class SubscriberStatisticsFieldsFactoryTest extends MailPoetTest {
|
|||||||
(new StatisticsClicksFactory($link1, $subscriber))->create(); // click 1
|
(new StatisticsClicksFactory($link1, $subscriber))->create(); // click 1
|
||||||
(new StatisticsClicksFactory($link2, $subscriber))->create(); // click 2
|
(new StatisticsClicksFactory($link2, $subscriber))->create(); // click 2
|
||||||
|
|
||||||
|
// click dates are filtered by newsletter stats dates
|
||||||
|
(new StatisticsNewslettersFactory($newsletter1, $subscriber))->withSentAt(new Carbon('-1 week'))->create();
|
||||||
|
(new StatisticsNewslettersFactory($newsletter2, $subscriber))->withSentAt(new Carbon('-1 day'))->create();
|
||||||
|
|
||||||
// check definitions
|
// check definitions
|
||||||
$field = $fields['mailpoet:subscriber:email-clicked-count'];
|
$field = $fields['mailpoet:subscriber:email-clicked-count'];
|
||||||
$this->assertSame('Email — clicked count', $field->getName());
|
$this->assertSame('Email — clicked count', $field->getName());
|
||||||
@@ -122,6 +126,9 @@ class SubscriberStatisticsFieldsFactoryTest extends MailPoetTest {
|
|||||||
// check values
|
// check values
|
||||||
$payload = new SubscriberPayload($subscriber);
|
$payload = new SubscriberPayload($subscriber);
|
||||||
$this->assertSame(2, $field->getValue($payload));
|
$this->assertSame(2, $field->getValue($payload));
|
||||||
|
$this->assertSame(2, $field->getValue($payload, ['in_the_last_seconds' => 3 * WEEK_IN_SECONDS]));
|
||||||
|
$this->assertSame(1, $field->getValue($payload, ['in_the_last_seconds' => 3 * DAY_IN_SECONDS]));
|
||||||
|
$this->assertSame(0, $field->getValue($payload, ['in_the_last_seconds' => 3 * HOUR_IN_SECONDS]));
|
||||||
}
|
}
|
||||||
|
|
||||||
/** @return array<string, Field> */
|
/** @return array<string, Field> */
|
||||||
|
Reference in New Issue
Block a user