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