Use Newsletter\Links as service

[MAILPOET-3269]
This commit is contained in:
Jan Lysý
2021-05-28 10:00:20 +02:00
committed by Veljko V
parent 8826b01ec9
commit c9636ebf1b
10 changed files with 70 additions and 31 deletions

View File

@ -27,16 +27,21 @@ class ViewInBrowserRenderer {
/** @var Shortcodes */
private $shortcodes;
/** @var Links */
private $links;
public function __construct(
Emoji $emoji,
SettingsController $settings,
Shortcodes $shortcodes,
Renderer $renderer
Renderer $renderer,
Links $links
) {
$this->emoji = $emoji;
$this->isTrackingEnabled = $settings->get('tracking.enabled');
$this->renderer = $renderer;
$this->shortcodes = $shortcodes;
$this->links = $links;
}
public function render(
@ -58,8 +63,8 @@ class ViewInBrowserRenderer {
// isolate "view in browser", "unsubscribe" and "manage subscription" links
// and convert them to shortcodes, which later will be replaced with "#" when
// newsletter is previewed
if ($wpUserPreview && preg_match(Links::getLinkRegex(), $newsletterBody)) {
$newsletterBody = Links::convertHashedLinksToShortcodesAndUrls(
if ($wpUserPreview && preg_match($this->links->getLinkRegex(), $newsletterBody)) {
$newsletterBody = $this->links->convertHashedLinksToShortcodesAndUrls(
$newsletterBody,
$queue->getId(),
$convertAll = true
@ -82,7 +87,7 @@ class ViewInBrowserRenderer {
);
$renderedNewsletter = $this->shortcodes->replace($newsletterBody);
if (!$wpUserPreview && $queue && $subscriber && $this->isTrackingEnabled) {
$renderedNewsletter = Links::replaceSubscriberData(
$renderedNewsletter = $this->links->replaceSubscriberData(
$subscriber->getId(),
$queue->getId(),
$renderedNewsletter