Pass SubscriberEntity to sendConfirmationEmail() and sendConfirmationEmailOnce()

This commit changes the methods sendConfirmationEmail() and
sendConfirmationEmailOnce() to accept as the first parameter an instance
of SubscriberEntity instead of the old model Subscriber. It also updates
all the places where those two methods are called.

[MAILPOET-3815]
This commit is contained in:
Rodrigo Primo
2021-12-01 20:25:36 -03:00
committed by Veljko V
parent 8cd3205ade
commit 6c05b3eaf0
9 changed files with 153 additions and 106 deletions

View File

@ -2,6 +2,7 @@
namespace MailPoet\API\MP\v1;
use MailPoet\Entities\SubscriberEntity;
use MailPoet\Models\Segment;
use MailPoet\Models\Subscriber;
use MailPoet\Models\SubscriberSegment;
@ -11,6 +12,7 @@ use MailPoet\Subscribers\ConfirmationEmailMailer;
use MailPoet\Subscribers\NewSubscriberNotificationMailer;
use MailPoet\Subscribers\RequiredCustomFieldValidator;
use MailPoet\Subscribers\Source;
use MailPoet\Subscribers\SubscribersRepository;
use MailPoet\Tasks\Sending;
use MailPoet\Util\Helpers;
use MailPoet\WP\Functions as WPFunctions;
@ -35,13 +37,17 @@ class API {
/** @var CustomFields */
private $customFields;
/** @var SubscribersRepository */
private $subscribersRepository;
public function __construct(
NewSubscriberNotificationMailer $newSubscriberNotificationMailer,
ConfirmationEmailMailer $confirmationEmailMailer,
RequiredCustomFieldValidator $requiredCustomFieldValidator,
WelcomeScheduler $welcomeScheduler,
CustomFields $customFields,
SettingsController $settings
SettingsController $settings,
SubscribersRepository $subscribersRepository
) {
$this->newSubscriberNotificationMailer = $newSubscriberNotificationMailer;
$this->confirmationEmailMailer = $confirmationEmailMailer;
@ -49,6 +55,7 @@ class API {
$this->welcomeScheduler = $welcomeScheduler;
$this->settings = $settings;
$this->customFields = $customFields;
$this->subscribersRepository = $subscribersRepository;
}
public function getSubscriberFields() {
@ -324,7 +331,10 @@ class API {
}
protected function _sendConfirmationEmail(Subscriber $subscriber) {
return $this->confirmationEmailMailer->sendConfirmationEmailOnce($subscriber);
$subscriberEntity = $this->subscribersRepository->findOneById($subscriber->id);
if ($subscriberEntity instanceof SubscriberEntity) {
return $this->confirmationEmailMailer->sendConfirmationEmailOnce($subscriberEntity);
}
}
protected function _scheduleWelcomeNotification(Subscriber $subscriber, array $segments) {