Use getCurrentWPUser from SubscribersRepository

[MAILPOET-3268]
This commit is contained in:
Jan Lysý
2021-03-10 08:34:28 +01:00
committed by Veljko V
parent 97dd881e8d
commit dffaab10a2
6 changed files with 68 additions and 22 deletions

View File

@ -7,6 +7,7 @@ use MailPoet\Models\SendingQueue;
use MailPoet\Models\Subscriber;
use MailPoet\Newsletter\Url as NewsletterUrl;
use MailPoet\Subscribers\LinkTokens;
use MailPoet\Subscribers\SubscribersRepository;
class ViewInBrowserController {
/** @var LinkTokens */
@ -15,12 +16,17 @@ class ViewInBrowserController {
/** @var ViewInBrowserRenderer */
private $viewInBrowserRenderer;
/** @var SubscribersRepository */
private $subscribersRepository;
public function __construct(
LinkTokens $linkTokens,
ViewInBrowserRenderer $viewInBrowserRenderer
ViewInBrowserRenderer $viewInBrowserRenderer,
SubscribersRepository $subscribersRepository
) {
$this->linkTokens = $linkTokens;
$this->viewInBrowserRenderer = $viewInBrowserRenderer;
$this->subscribersRepository = $subscribersRepository;
}
public function view(array $data) {
@ -32,12 +38,12 @@ class ViewInBrowserController {
// if this is a preview and subscriber does not exist,
// attempt to set subscriber to the current logged-in WP user
if (!$subscriber && $isPreview) {
$subscriber = Subscriber::getCurrentWPUser() ?: null;
$subscriber = $this->subscribersRepository->getCurrentWPUser();
}
// if queue and subscriber exist, subscriber must have received the newsletter
$queue = $this->getQueue($newsletter, $data);
if (!$isPreview && $queue && $subscriber && !$queue->isSubscriberProcessed($subscriber->id)) {
if (!$isPreview && $queue && $subscriber && !$queue->isSubscriberProcessed($subscriber->getId())) {
throw new \InvalidArgumentException("Subscriber did not receive the newsletter yet");
}