Save bounces statistics
[MAILPOET-3765]
This commit is contained in:
@@ -2,7 +2,9 @@
|
|||||||
|
|
||||||
namespace MailPoet\Cron\Workers;
|
namespace MailPoet\Cron\Workers;
|
||||||
|
|
||||||
|
use MailPoet\Entities\NewsletterEntity;
|
||||||
use MailPoet\Entities\ScheduledTaskEntity;
|
use MailPoet\Entities\ScheduledTaskEntity;
|
||||||
|
use MailPoet\Entities\StatisticsBounceEntity;
|
||||||
use MailPoet\Entities\SubscriberEntity;
|
use MailPoet\Entities\SubscriberEntity;
|
||||||
use MailPoet\Mailer\Mailer;
|
use MailPoet\Mailer\Mailer;
|
||||||
use MailPoet\Models\ScheduledTask;
|
use MailPoet\Models\ScheduledTask;
|
||||||
@@ -12,6 +14,7 @@ use MailPoet\Newsletter\Sending\SendingQueuesRepository;
|
|||||||
use MailPoet\Services\Bridge;
|
use MailPoet\Services\Bridge;
|
||||||
use MailPoet\Services\Bridge\API;
|
use MailPoet\Services\Bridge\API;
|
||||||
use MailPoet\Settings\SettingsController;
|
use MailPoet\Settings\SettingsController;
|
||||||
|
use MailPoet\Statistics\StatisticsBouncesRepository;
|
||||||
use MailPoet\Subscribers\SubscribersRepository;
|
use MailPoet\Subscribers\SubscribersRepository;
|
||||||
use MailPoet\Tasks\Bounce as BounceTask;
|
use MailPoet\Tasks\Bounce as BounceTask;
|
||||||
use MailPoet\Tasks\Subscribers as TaskSubscribers;
|
use MailPoet\Tasks\Subscribers as TaskSubscribers;
|
||||||
@@ -43,11 +46,15 @@ class Bounce extends SimpleWorker {
|
|||||||
/** @var SendingQueuesRepository */
|
/** @var SendingQueuesRepository */
|
||||||
private $sendingQueuesRepository;
|
private $sendingQueuesRepository;
|
||||||
|
|
||||||
|
/** @var StatisticsBouncesRepository */
|
||||||
|
private $statisticsBouncesRepository;
|
||||||
|
|
||||||
public function __construct(
|
public function __construct(
|
||||||
SettingsController $settings,
|
SettingsController $settings,
|
||||||
SubscribersRepository $subscribersRepository,
|
SubscribersRepository $subscribersRepository,
|
||||||
ScheduledTasksRepository $scheduledTasksRepository,
|
ScheduledTasksRepository $scheduledTasksRepository,
|
||||||
SendingQueuesRepository $sendingQueuesRepository,
|
SendingQueuesRepository $sendingQueuesRepository,
|
||||||
|
StatisticsBouncesRepository $statisticsBouncesRepository,
|
||||||
Bridge $bridge
|
Bridge $bridge
|
||||||
) {
|
) {
|
||||||
$this->settings = $settings;
|
$this->settings = $settings;
|
||||||
@@ -56,6 +63,7 @@ class Bounce extends SimpleWorker {
|
|||||||
$this->subscribersRepository = $subscribersRepository;
|
$this->subscribersRepository = $subscribersRepository;
|
||||||
$this->scheduledTasksRepository = $scheduledTasksRepository;
|
$this->scheduledTasksRepository = $scheduledTasksRepository;
|
||||||
$this->sendingQueuesRepository = $sendingQueuesRepository;
|
$this->sendingQueuesRepository = $sendingQueuesRepository;
|
||||||
|
$this->statisticsBouncesRepository = $statisticsBouncesRepository;
|
||||||
}
|
}
|
||||||
|
|
||||||
public function init() {
|
public function init() {
|
||||||
@@ -148,7 +156,11 @@ class Bounce extends SimpleWorker {
|
|||||||
}
|
}
|
||||||
$queues = $this->sendingQueuesRepository->findAllForSubscriberSentBetween($subscriber, $taskEntity->getScheduledAt(), $dateFrom);
|
$queues = $this->sendingQueuesRepository->findAllForSubscriberSentBetween($subscriber, $taskEntity->getScheduledAt(), $dateFrom);
|
||||||
foreach ($queues as $queue) {
|
foreach ($queues as $queue) {
|
||||||
// todo save statistics
|
$newsletter = $queue->getNewsletter();
|
||||||
|
if ($newsletter instanceof NewsletterEntity) {
|
||||||
|
$statistics = new StatisticsBounceEntity($newsletter, $queue, $subscriber);
|
||||||
|
$this->statisticsBouncesRepository->persist($statistics);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -238,6 +238,7 @@ class ContainerConfigurator implements IContainerConfigurator {
|
|||||||
$container->autowire(\MailPoet\Statistics\Track\WooCommercePurchases::class);
|
$container->autowire(\MailPoet\Statistics\Track\WooCommercePurchases::class);
|
||||||
$container->autowire(\MailPoet\Statistics\Track\Unsubscribes::class)->setPublic(true);
|
$container->autowire(\MailPoet\Statistics\Track\Unsubscribes::class)->setPublic(true);
|
||||||
$container->autowire(\MailPoet\Statistics\StatisticsFormsRepository::class)->setPublic(true);
|
$container->autowire(\MailPoet\Statistics\StatisticsFormsRepository::class)->setPublic(true);
|
||||||
|
$container->autowire(\MailPoet\Statistics\StatisticsBouncesRepository::class)->setPublic(true);
|
||||||
$container->autowire(\MailPoet\Statistics\StatisticsClicksRepository::class)->setPublic(true);
|
$container->autowire(\MailPoet\Statistics\StatisticsClicksRepository::class)->setPublic(true);
|
||||||
$container->autowire(\MailPoet\Statistics\StatisticsOpensRepository::class)->setPublic(true);
|
$container->autowire(\MailPoet\Statistics\StatisticsOpensRepository::class)->setPublic(true);
|
||||||
$container->autowire(\MailPoet\Statistics\StatisticsUnsubscribesRepository::class);
|
$container->autowire(\MailPoet\Statistics\StatisticsUnsubscribesRepository::class);
|
||||||
|
15
lib/Statistics/StatisticsBouncesRepository.php
Normal file
15
lib/Statistics/StatisticsBouncesRepository.php
Normal file
@@ -0,0 +1,15 @@
|
|||||||
|
<?php declare(strict_types=1);
|
||||||
|
|
||||||
|
namespace MailPoet\Statistics;
|
||||||
|
|
||||||
|
use MailPoet\Doctrine\Repository;
|
||||||
|
use MailPoet\Entities\StatisticsBounceEntity;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @extends Repository<StatisticsBounceEntity>
|
||||||
|
*/
|
||||||
|
class StatisticsBouncesRepository extends Repository {
|
||||||
|
protected function getEntityClassName(): string {
|
||||||
|
return StatisticsBounceEntity::class;
|
||||||
|
}
|
||||||
|
}
|
Reference in New Issue
Block a user