Move NewstetterLink properties to NewsletterLinkEntity
Doing this as part of the task to deprecated old Paris models (NewsletterLink) and use Doctrine entities instead (NewslleterLinkEntity). [MAILPOET-3816]
This commit is contained in:
@@ -13,6 +13,7 @@ use MailPoet\Cron\Workers\SubscribersLastEngagement;
|
|||||||
use MailPoet\Cron\Workers\UnsubscribeTokens;
|
use MailPoet\Cron\Workers\UnsubscribeTokens;
|
||||||
use MailPoet\Entities\FormEntity;
|
use MailPoet\Entities\FormEntity;
|
||||||
use MailPoet\Entities\NewsletterEntity;
|
use MailPoet\Entities\NewsletterEntity;
|
||||||
|
use MailPoet\Entities\NewsletterLinkEntity;
|
||||||
use MailPoet\Entities\NewsletterTemplateEntity;
|
use MailPoet\Entities\NewsletterTemplateEntity;
|
||||||
use MailPoet\Entities\ScheduledTaskEntity;
|
use MailPoet\Entities\ScheduledTaskEntity;
|
||||||
use MailPoet\Entities\SendingQueueEntity;
|
use MailPoet\Entities\SendingQueueEntity;
|
||||||
@@ -700,8 +701,8 @@ class Populator {
|
|||||||
$wpdb->query(sprintf(
|
$wpdb->query(sprintf(
|
||||||
$query,
|
$query,
|
||||||
NewsletterLink::$_table,
|
NewsletterLink::$_table,
|
||||||
NewsletterLink::INSTANT_UNSUBSCRIBE_LINK_SHORT_CODE,
|
NewsletterLinkEntity::INSTANT_UNSUBSCRIBE_LINK_SHORT_CODE,
|
||||||
NewsletterLink::UNSUBSCRIBE_LINK_SHORT_CODE
|
NewsletterLinkEntity::UNSUBSCRIBE_LINK_SHORT_CODE
|
||||||
));
|
));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -2,6 +2,7 @@
|
|||||||
|
|
||||||
namespace MailPoet\Cron\Workers\SendingQueue\Tasks;
|
namespace MailPoet\Cron\Workers\SendingQueue\Tasks;
|
||||||
|
|
||||||
|
use MailPoet\Entities\NewsletterLinkEntity;
|
||||||
use MailPoet\Models\NewsletterLink as NewsletterLinkModel;
|
use MailPoet\Models\NewsletterLink as NewsletterLinkModel;
|
||||||
use MailPoet\Newsletter\Links\Links as NewsletterLinks;
|
use MailPoet\Newsletter\Links\Links as NewsletterLinks;
|
||||||
use MailPoet\Router\Endpoints\Track;
|
use MailPoet\Router\Endpoints\Track;
|
||||||
@@ -61,7 +62,7 @@ class Links {
|
|||||||
$settings = SettingsController::getInstance();
|
$settings = SettingsController::getInstance();
|
||||||
if ((boolean)$settings->get('tracking.enabled') && $subscriber) {
|
if ((boolean)$settings->get('tracking.enabled') && $subscriber) {
|
||||||
$linkHash = NewsletterLinkModel::where('queue_id', $queue->id)
|
$linkHash = NewsletterLinkModel::where('queue_id', $queue->id)
|
||||||
->where('url', NewsletterLinkModel::INSTANT_UNSUBSCRIBE_LINK_SHORT_CODE)
|
->where('url', NewsletterLinkEntity::INSTANT_UNSUBSCRIBE_LINK_SHORT_CODE)
|
||||||
->findOne();
|
->findOne();
|
||||||
if (!$linkHash instanceof NewsletterLinkModel) {
|
if (!$linkHash instanceof NewsletterLinkModel) {
|
||||||
return '';
|
return '';
|
||||||
|
@@ -11,7 +11,6 @@ use MailPoet\Entities\SendingQueueEntity;
|
|||||||
use MailPoet\Entities\StatsNotificationEntity;
|
use MailPoet\Entities\StatsNotificationEntity;
|
||||||
use MailPoet\Mailer\Mailer;
|
use MailPoet\Mailer\Mailer;
|
||||||
use MailPoet\Mailer\MetaInfo;
|
use MailPoet\Mailer\MetaInfo;
|
||||||
use MailPoet\Models\NewsletterLink;
|
|
||||||
use MailPoet\Models\ScheduledTask;
|
use MailPoet\Models\ScheduledTask;
|
||||||
use MailPoet\Newsletter\Statistics\NewsletterStatisticsRepository;
|
use MailPoet\Newsletter\Statistics\NewsletterStatisticsRepository;
|
||||||
use MailPoet\Settings\SettingsController;
|
use MailPoet\Settings\SettingsController;
|
||||||
@@ -176,7 +175,7 @@ class Worker {
|
|||||||
|
|
||||||
public static function getShortcodeLinksMapping() {
|
public static function getShortcodeLinksMapping() {
|
||||||
return [
|
return [
|
||||||
NewsletterLink::UNSUBSCRIBE_LINK_SHORT_CODE => __('Unsubscribe link', 'mailpoet'),
|
NewsletterLinkEntity::UNSUBSCRIBE_LINK_SHORT_CODE => __('Unsubscribe link', 'mailpoet'),
|
||||||
'[link:subscription_manage_url]' => __('Manage subscription link', 'mailpoet'),
|
'[link:subscription_manage_url]' => __('Manage subscription link', 'mailpoet'),
|
||||||
'[link:newsletter_view_in_browser_url]' => __('View in browser link', 'mailpoet'),
|
'[link:newsletter_view_in_browser_url]' => __('View in browser link', 'mailpoet'),
|
||||||
];
|
];
|
||||||
|
@@ -19,6 +19,9 @@ class NewsletterLinkEntity {
|
|||||||
use UpdatedAtTrait;
|
use UpdatedAtTrait;
|
||||||
use SafeToOneAssociationLoadTrait;
|
use SafeToOneAssociationLoadTrait;
|
||||||
|
|
||||||
|
public const UNSUBSCRIBE_LINK_SHORT_CODE = '[link:subscription_unsubscribe_url]';
|
||||||
|
public const INSTANT_UNSUBSCRIBE_LINK_SHORT_CODE = '[link:subscription_instant_unsubscribe_url]';
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @ORM\ManyToOne(targetEntity="MailPoet\Entities\NewsletterEntity")
|
* @ORM\ManyToOne(targetEntity="MailPoet\Entities\NewsletterEntity")
|
||||||
* @ORM\JoinColumn(name="newsletter_id", referencedColumnName="id")
|
* @ORM\JoinColumn(name="newsletter_id", referencedColumnName="id")
|
||||||
|
@@ -2,6 +2,8 @@
|
|||||||
|
|
||||||
namespace MailPoet\Models;
|
namespace MailPoet\Models;
|
||||||
|
|
||||||
|
use MailPoet\Entities\NewsletterLinkEntity;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @property int $newsletterId
|
* @property int $newsletterId
|
||||||
* @property int $queueId
|
* @property int $queueId
|
||||||
@@ -11,6 +13,6 @@ namespace MailPoet\Models;
|
|||||||
*/
|
*/
|
||||||
class NewsletterLink extends Model {
|
class NewsletterLink extends Model {
|
||||||
public static $_table = MP_NEWSLETTER_LINKS_TABLE; // phpcs:ignore PSR2.Classes.PropertyDeclaration
|
public static $_table = MP_NEWSLETTER_LINKS_TABLE; // phpcs:ignore PSR2.Classes.PropertyDeclaration
|
||||||
const UNSUBSCRIBE_LINK_SHORT_CODE = '[link:subscription_unsubscribe_url]';
|
const UNSUBSCRIBE_LINK_SHORT_CODE = NewsletterLinkEntity::UNSUBSCRIBE_LINK_SHORT_CODE;
|
||||||
const INSTANT_UNSUBSCRIBE_LINK_SHORT_CODE = '[link:subscription_instant_unsubscribe_url]';
|
const INSTANT_UNSUBSCRIBE_LINK_SHORT_CODE = NewsletterLinkEntity::INSTANT_UNSUBSCRIBE_LINK_SHORT_CODE;
|
||||||
}
|
}
|
||||||
|
@@ -3,6 +3,7 @@
|
|||||||
namespace MailPoet\Newsletter\Links;
|
namespace MailPoet\Newsletter\Links;
|
||||||
|
|
||||||
use MailPoet\DI\ContainerWrapper;
|
use MailPoet\DI\ContainerWrapper;
|
||||||
|
use MailPoet\Entities\NewsletterLinkEntity;
|
||||||
use MailPoet\InvalidStateException;
|
use MailPoet\InvalidStateException;
|
||||||
use MailPoet\Models\NewsletterLink;
|
use MailPoet\Models\NewsletterLink;
|
||||||
use MailPoet\Newsletter\Shortcodes\Categories\Link;
|
use MailPoet\Newsletter\Shortcodes\Categories\Link;
|
||||||
@@ -155,13 +156,13 @@ class Links {
|
|||||||
|
|
||||||
public function ensureInstantUnsubscribeLink(array $processedLinks) {
|
public function ensureInstantUnsubscribeLink(array $processedLinks) {
|
||||||
if (in_array(
|
if (in_array(
|
||||||
NewsletterLink::INSTANT_UNSUBSCRIBE_LINK_SHORT_CODE,
|
NewsletterLinkEntity::INSTANT_UNSUBSCRIBE_LINK_SHORT_CODE,
|
||||||
array_column($processedLinks, 'link'))
|
array_column($processedLinks, 'link'))
|
||||||
) {
|
) {
|
||||||
return $processedLinks;
|
return $processedLinks;
|
||||||
}
|
}
|
||||||
$processedLinks[] = $this->hashLink(
|
$processedLinks[] = $this->hashLink(
|
||||||
NewsletterLink::INSTANT_UNSUBSCRIBE_LINK_SHORT_CODE,
|
NewsletterLinkEntity::INSTANT_UNSUBSCRIBE_LINK_SHORT_CODE,
|
||||||
Links::LINK_TYPE_SHORTCODE
|
Links::LINK_TYPE_SHORTCODE
|
||||||
);
|
);
|
||||||
return $processedLinks;
|
return $processedLinks;
|
||||||
|
@@ -3,7 +3,7 @@
|
|||||||
namespace MailPoet\Newsletter\Shortcodes;
|
namespace MailPoet\Newsletter\Shortcodes;
|
||||||
|
|
||||||
use MailPoet\CustomFields\CustomFieldsRepository;
|
use MailPoet\CustomFields\CustomFieldsRepository;
|
||||||
use MailPoet\Models\NewsletterLink;
|
use MailPoet\Entities\NewsletterLinkEntity;
|
||||||
|
|
||||||
class ShortcodesHelper {
|
class ShortcodesHelper {
|
||||||
/** @var CustomFieldsRepository */
|
/** @var CustomFieldsRepository */
|
||||||
@@ -90,7 +90,7 @@ class ShortcodesHelper {
|
|||||||
'text' => __('Unsubscribe link', 'mailpoet'),
|
'text' => __('Unsubscribe link', 'mailpoet'),
|
||||||
'shortcode' => sprintf(
|
'shortcode' => sprintf(
|
||||||
'<a target="_blank" href="%s">%s</a>',
|
'<a target="_blank" href="%s">%s</a>',
|
||||||
NewsletterLink::UNSUBSCRIBE_LINK_SHORT_CODE,
|
NewsletterLinkEntity::UNSUBSCRIBE_LINK_SHORT_CODE,
|
||||||
__('Unsubscribe', 'mailpoet')
|
__('Unsubscribe', 'mailpoet')
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
|
@@ -3,6 +3,7 @@
|
|||||||
namespace MailPoet\Test\Cron\Workers\SendingQueue\Tasks;
|
namespace MailPoet\Test\Cron\Workers\SendingQueue\Tasks;
|
||||||
|
|
||||||
use MailPoet\Cron\Workers\SendingQueue\Tasks\Links;
|
use MailPoet\Cron\Workers\SendingQueue\Tasks\Links;
|
||||||
|
use MailPoet\Entities\NewsletterLinkEntity;
|
||||||
use MailPoet\Models\Newsletter;
|
use MailPoet\Models\Newsletter;
|
||||||
use MailPoet\Models\NewsletterLink;
|
use MailPoet\Models\NewsletterLink;
|
||||||
use MailPoetVendor\Idiorm\ORM;
|
use MailPoetVendor\Idiorm\ORM;
|
||||||
@@ -76,7 +77,7 @@ class LinksTest extends \MailPoetTest {
|
|||||||
$queue = (object)['id' => 2];
|
$queue = (object)['id' => 2];
|
||||||
$this->links->process($renderedNewsletter, $newsletter, $queue);
|
$this->links->process($renderedNewsletter, $newsletter, $queue);
|
||||||
$unsubscribeCount = NewsletterLink::where('newsletter_id', $newsletter->id)
|
$unsubscribeCount = NewsletterLink::where('newsletter_id', $newsletter->id)
|
||||||
->where('url', NewsletterLink::INSTANT_UNSUBSCRIBE_LINK_SHORT_CODE)->count();
|
->where('url', NewsletterLinkEntity::INSTANT_UNSUBSCRIBE_LINK_SHORT_CODE)->count();
|
||||||
expect($unsubscribeCount)->equals(1);
|
expect($unsubscribeCount)->equals(1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -3,6 +3,7 @@
|
|||||||
namespace MailPoet\Test\Newsletter\Links;
|
namespace MailPoet\Test\Newsletter\Links;
|
||||||
|
|
||||||
use Codeception\Util\Fixtures;
|
use Codeception\Util\Fixtures;
|
||||||
|
use MailPoet\Entities\NewsletterLinkEntity;
|
||||||
use MailPoet\Models\NewsletterLink;
|
use MailPoet\Models\NewsletterLink;
|
||||||
use MailPoet\Models\SendingQueue;
|
use MailPoet\Models\SendingQueue;
|
||||||
use MailPoet\Models\Subscriber;
|
use MailPoet\Models\Subscriber;
|
||||||
@@ -255,7 +256,7 @@ class LinksTest extends \MailPoetTest {
|
|||||||
];
|
];
|
||||||
$links = $this->links->ensureInstantUnsubscribeLink($links);
|
$links = $this->links->ensureInstantUnsubscribeLink($links);
|
||||||
expect(count($links))->equals(2);
|
expect(count($links))->equals(2);
|
||||||
expect($links[1]['link'])->equals(NewsletterLink::INSTANT_UNSUBSCRIBE_LINK_SHORT_CODE);
|
expect($links[1]['link'])->equals(NewsletterLinkEntity::INSTANT_UNSUBSCRIBE_LINK_SHORT_CODE);
|
||||||
expect($links[1]['type'])->equals(Links::LINK_TYPE_SHORTCODE);
|
expect($links[1]['type'])->equals(Links::LINK_TYPE_SHORTCODE);
|
||||||
expect($links[1])->hasKey('processed_link');
|
expect($links[1])->hasKey('processed_link');
|
||||||
expect($links[1])->hasKey('hash');
|
expect($links[1])->hasKey('hash');
|
||||||
|
Reference in New Issue
Block a user