Add newsletter stats into WooCommerce data generator

[MAILPOET-3226]
This commit is contained in:
Rostislav Wolny
2021-05-07 10:20:37 +02:00
committed by Veljko V
parent aa09ed2504
commit d17c8ab81e

View File

@ -8,6 +8,7 @@ use MailPoet\Models\ScheduledTask;
use MailPoet\Models\ScheduledTaskSubscriber;
use MailPoet\Models\SendingQueue;
use MailPoet\Models\StatisticsClicks;
use MailPoet\Models\StatisticsNewsletters;
use MailPoet\Models\StatisticsOpens;
use MailPoet\Models\Subscriber;
use MailPoet\Models\SubscriberSegment;
@ -336,23 +337,6 @@ class WooCommercePastRevenues implements Generator {
]);
$task->save();
// Add subscribers to task
$batchData = [];
foreach ($subscribersIds as $subscriberId) {
$batchData[] = "({$task->id}, $subscriberId, 1, '$sentAt')";
if (count($batchData) % 1000 === 0) {
ORM::rawExecute(
"INSERT INTO " . ScheduledTaskSubscriber::$_table . " (`task_id`, `subscriber_id`, `processed`, `created_at`) VALUES " . implode(', ', $batchData)
);
$batchData = [];
}
}
if ($batchData) {
ORM::rawExecute(
"INSERT INTO " . ScheduledTaskSubscriber::$_table . " (`task_id`, `subscriber_id`, `processed`, `created_at`) VALUES " . implode(', ', $batchData)
);
}
// Sending queue
$queue = SendingQueue::createOrUpdate([
'task_id' => $task->id,
@ -362,6 +346,37 @@ class WooCommercePastRevenues implements Generator {
]);
$queue->save();
// Add subscribers to task and stats sent
$batchData = [];
$statsBatchData = [];
foreach ($subscribersIds as $subscriberId) {
$batchData[] = "({$task->id}, $subscriberId, 1, '$sentAt')";
if (count($batchData) % 1000 === 0) {
ORM::rawExecute(
"INSERT INTO " . ScheduledTaskSubscriber::$_table . " (`task_id`, `subscriber_id`, `processed`, `created_at`) VALUES " . implode(', ', $batchData)
);
$batchData = [];
}
$statsBatchData[] = "({$newsletter->id}, $subscriberId, $queue->id, '$sentAt')";
if (count($statsBatchData) % 1000 === 0) {
ORM::rawExecute(
"INSERT INTO " . StatisticsNewsletters::$_table . " (`newsletter_id`, `subscriber_id`, `queue_id`, `sent_at`) VALUES " . implode(', ', $statsBatchData)
);
$statsBatchData = [];
}
}
if ($batchData) {
ORM::rawExecute(
"INSERT INTO " . ScheduledTaskSubscriber::$_table . " (`task_id`, `subscriber_id`, `processed`, `created_at`) VALUES " . implode(', ', $batchData)
);
}
if ($statsBatchData) {
ORM::rawExecute(
"INSERT INTO " . StatisticsNewsletters::$_table . " (`newsletter_id`, `subscriber_id`, `queue_id`, `sent_at`) VALUES " . implode(', ', $statsBatchData)
);
}
// Link
$link = (new \MailPoet\Test\DataFactories\NewsletterLink($newsletter))
->withCreatedAt($sentAt)
@ -386,9 +401,6 @@ class WooCommercePastRevenues implements Generator {
];
}
/**
* @return StatisticsOpens
*/
private function openSentNewsletter(array $sentNewsletterData, $subscriberId, $createdAt) {
StatisticsOpens::createOrUpdate([
'subscriber_id' => $subscriberId,
@ -398,9 +410,6 @@ class WooCommercePastRevenues implements Generator {
])->save();
}
/**
* @return array
*/
private function clickSentNewsletter(array $sentNewsletterData, $subscriberId, $createdAt) {
StatisticsClicks::createOrUpdate([
'subscriber_id' => $subscriberId,