Make sure one-click unsubscribe url won't redirect internally
[MAILPOET-4703]
This commit is contained in:
@@ -5,6 +5,7 @@ namespace MailPoet\Cron\Workers\SendingQueue\Tasks;
|
||||
use MailPoet\Cron\Workers\StatsNotifications\NewsletterLinkRepository;
|
||||
use MailPoet\Entities\NewsletterEntity;
|
||||
use MailPoet\Entities\NewsletterLinkEntity;
|
||||
use MailPoet\Entities\SubscriberEntity;
|
||||
use MailPoet\Newsletter\Links\Links as NewsletterLinks;
|
||||
use MailPoet\Router\Endpoints\Track;
|
||||
use MailPoet\Router\Router;
|
||||
@@ -68,12 +69,11 @@ class Links {
|
||||
return $this->newsletterLinks->save($links, $newsletter->getId(), $queue->id);
|
||||
}
|
||||
|
||||
public function getUnsubscribeUrl($queue, $subscriberId) {
|
||||
$subscriber = $this->subscribersRepository->findOneById($subscriberId);
|
||||
public function getUnsubscribeUrl($queueId, SubscriberEntity $subscriber = null) {
|
||||
if ($this->trackingConfig->isEmailTrackingEnabled() && $subscriber) {
|
||||
$linkHash = $this->newsletterLinkRepository->findOneBy(
|
||||
[
|
||||
'queue' => $queue->id,
|
||||
'queue' => $queueId,
|
||||
'url' => NewsletterLinkEntity::INSTANT_UNSUBSCRIBE_LINK_SHORT_CODE,
|
||||
]
|
||||
);
|
||||
@@ -84,7 +84,7 @@ class Links {
|
||||
$data = $this->newsletterLinks->createUrlDataObject(
|
||||
$subscriber->getId(),
|
||||
$this->linkTokens->getToken($subscriber),
|
||||
$queue->id,
|
||||
$queueId,
|
||||
$linkHash->getHash(),
|
||||
false
|
||||
);
|
||||
@@ -95,8 +95,13 @@ class Links {
|
||||
);
|
||||
} else {
|
||||
$subscriptionUrlFactory = SubscriptionUrlFactory::getInstance();
|
||||
$url = $subscriptionUrlFactory->getUnsubscribeUrl($subscriber, $queue->id);
|
||||
$url = $subscriptionUrlFactory->getUnsubscribeUrl($subscriber, $queueId);
|
||||
}
|
||||
return $url;
|
||||
}
|
||||
|
||||
public function getOneClickUnsubscribeUrl($queueId, SubscriberEntity $subscriber): string {
|
||||
$subscriptionUrlFactory = SubscriptionUrlFactory::getInstance();
|
||||
return $subscriptionUrlFactory->getUnsubscribeUrl($subscriber, $queueId);
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user