Inject LinkTokens dependency to SubscriptionUrlFactory using DI
[MAILPOET-2381]
This commit is contained in:
committed by
Jack Kitterhing
parent
0dd7b5fb7a
commit
4d3a005b20
@ -49,7 +49,7 @@ class ConfirmationEmailMailer {
|
|||||||
$this->mailerMetaInfo = new MetaInfo;
|
$this->mailerMetaInfo = new MetaInfo;
|
||||||
|
|
||||||
if ($subscription_url_factory === null) {
|
if ($subscription_url_factory === null) {
|
||||||
$subscription_url_factory = new SubscriptionUrlFactory($this->wp, $this->settings);
|
$subscription_url_factory = SubscriptionUrlFactory::getInstance();
|
||||||
}
|
}
|
||||||
$this->subscription_url_factory = $subscription_url_factory;
|
$this->subscription_url_factory = $subscription_url_factory;
|
||||||
}
|
}
|
||||||
|
@ -20,9 +20,13 @@ class SubscriptionUrlFactory {
|
|||||||
/** @var SettingsController */
|
/** @var SettingsController */
|
||||||
private $settings;
|
private $settings;
|
||||||
|
|
||||||
public function __construct(WPFunctions $wp, SettingsController $settings) {
|
/** @var LinkTokens */
|
||||||
|
private $link_tokens;
|
||||||
|
|
||||||
|
public function __construct(WPFunctions $wp, SettingsController $settings, LinkTokens $link_tokens) {
|
||||||
$this->wp = $wp;
|
$this->wp = $wp;
|
||||||
$this->settings = $settings;
|
$this->settings = $settings;
|
||||||
|
$this->link_tokens = $link_tokens;
|
||||||
}
|
}
|
||||||
|
|
||||||
function getCaptchaUrl() {
|
function getCaptchaUrl() {
|
||||||
@ -59,10 +63,9 @@ class SubscriptionUrlFactory {
|
|||||||
if ($post === null || $action === null) return;
|
if ($post === null || $action === null) return;
|
||||||
|
|
||||||
$url = $this->wp->getPermalink($post);
|
$url = $this->wp->getPermalink($post);
|
||||||
$link_tokens = new LinkTokens;
|
|
||||||
if ($subscriber !== null) {
|
if ($subscriber !== null) {
|
||||||
$data = [
|
$data = [
|
||||||
'token' => $link_tokens->getToken($subscriber),
|
'token' => $this->link_tokens->getToken($subscriber),
|
||||||
'email' => $subscriber->email,
|
'email' => $subscriber->email,
|
||||||
];
|
];
|
||||||
} elseif (is_null($data)) {
|
} elseif (is_null($data)) {
|
||||||
@ -94,7 +97,7 @@ class SubscriptionUrlFactory {
|
|||||||
*/
|
*/
|
||||||
static function getInstance() {
|
static function getInstance() {
|
||||||
if (!self::$instance instanceof SubscriptionUrlFactory) {
|
if (!self::$instance instanceof SubscriptionUrlFactory) {
|
||||||
self::$instance = new SubscriptionUrlFactory(new WPFunctions, new SettingsController);
|
self::$instance = new SubscriptionUrlFactory(new WPFunctions, new SettingsController, new LinkTokens);
|
||||||
}
|
}
|
||||||
return self::$instance;
|
return self::$instance;
|
||||||
}
|
}
|
||||||
|
@ -24,6 +24,7 @@ use MailPoet\Models\SubscriberSegment;
|
|||||||
use MailPoet\Segments\SubscribersListings;
|
use MailPoet\Segments\SubscribersListings;
|
||||||
use MailPoet\Settings\SettingsController;
|
use MailPoet\Settings\SettingsController;
|
||||||
use MailPoet\Subscribers\ConfirmationEmailMailer;
|
use MailPoet\Subscribers\ConfirmationEmailMailer;
|
||||||
|
use MailPoet\Subscribers\LinkTokens;
|
||||||
use MailPoet\Subscribers\RequiredCustomFieldValidator;
|
use MailPoet\Subscribers\RequiredCustomFieldValidator;
|
||||||
use MailPoet\Subscribers\Source;
|
use MailPoet\Subscribers\Source;
|
||||||
use MailPoet\Subscribers\SubscriberActions;
|
use MailPoet\Subscribers\SubscriberActions;
|
||||||
@ -66,7 +67,7 @@ class SubscribersTest extends \MailPoetTest {
|
|||||||
$settings,
|
$settings,
|
||||||
$this->captcha_session,
|
$this->captcha_session,
|
||||||
$container->get(ConfirmationEmailMailer::class),
|
$container->get(ConfirmationEmailMailer::class),
|
||||||
new SubscriptionUrlFactory($wp, $settings)
|
new SubscriptionUrlFactory($wp, $settings, new LinkTokens)
|
||||||
);
|
);
|
||||||
$obfuscator = new FieldNameObfuscator();
|
$obfuscator = new FieldNameObfuscator();
|
||||||
$this->obfuscatedEmail = $obfuscator->obfuscate('email');
|
$this->obfuscatedEmail = $obfuscator->obfuscate('email');
|
||||||
|
@ -13,6 +13,7 @@ use MailPoet\Newsletter\Shortcodes\Categories\Date;
|
|||||||
use MailPoet\Newsletter\Url as NewsletterUrl;
|
use MailPoet\Newsletter\Url as NewsletterUrl;
|
||||||
use MailPoet\Referrals\ReferralDetector;
|
use MailPoet\Referrals\ReferralDetector;
|
||||||
use MailPoet\Settings\SettingsController;
|
use MailPoet\Settings\SettingsController;
|
||||||
|
use MailPoet\Subscribers\LinkTokens;
|
||||||
use MailPoet\Subscription\Captcha;
|
use MailPoet\Subscription\Captcha;
|
||||||
use MailPoet\Subscription\SubscriptionUrlFactory;
|
use MailPoet\Subscription\SubscriptionUrlFactory;
|
||||||
use MailPoet\WooCommerce\TransactionalEmails;
|
use MailPoet\WooCommerce\TransactionalEmails;
|
||||||
@ -46,7 +47,7 @@ class ShortcodesTest extends \MailPoetTest {
|
|||||||
$this->subscriber
|
$this->subscriber
|
||||||
);
|
);
|
||||||
$this->settings->set('tracking.enabled', false);
|
$this->settings->set('tracking.enabled', false);
|
||||||
$this->subscription_url_factory = new SubscriptionUrlFactory(WPFunctions::get(), $this->settings);
|
$this->subscription_url_factory = new SubscriptionUrlFactory(WPFunctions::get(), $this->settings, new LinkTokens);
|
||||||
}
|
}
|
||||||
|
|
||||||
function testItCanExtractShortcodes() {
|
function testItCanExtractShortcodes() {
|
||||||
|
@ -5,6 +5,7 @@ use Codeception\Util\Stub;
|
|||||||
use MailPoet\Features\FeaturesController;
|
use MailPoet\Features\FeaturesController;
|
||||||
use MailPoet\Referrals\ReferralDetector;
|
use MailPoet\Referrals\ReferralDetector;
|
||||||
use MailPoet\Router\Router;
|
use MailPoet\Router\Router;
|
||||||
|
use MailPoet\Subscribers\LinkTokens;
|
||||||
use MailPoet\Subscription\SubscriptionUrlFactory;
|
use MailPoet\Subscription\SubscriptionUrlFactory;
|
||||||
use MailPoet\Models\Subscriber;
|
use MailPoet\Models\Subscriber;
|
||||||
use MailPoet\Models\Setting;
|
use MailPoet\Models\Setting;
|
||||||
@ -30,7 +31,7 @@ class UrlTest extends \MailPoetTest {
|
|||||||
$wc_transactional_emails = new TransactionalEmails(WPFunctions::get(), $this->settings);
|
$wc_transactional_emails = new TransactionalEmails(WPFunctions::get(), $this->settings);
|
||||||
$populator = new Populator($this->settings, WPFunctions::get(), new Captcha, $referral_detector, $features_controller, $wc_transactional_emails);
|
$populator = new Populator($this->settings, WPFunctions::get(), new Captcha, $referral_detector, $features_controller, $wc_transactional_emails);
|
||||||
$populator->up();
|
$populator->up();
|
||||||
$this->url = new SubscriptionUrlFactory(WPFunctions::get(), $this->settings);
|
$this->url = new SubscriptionUrlFactory(WPFunctions::get(), $this->settings, new LinkTokens);
|
||||||
}
|
}
|
||||||
|
|
||||||
function testItReturnsTheDefaultPageUrlIfNoPageIsSetInSettings() {
|
function testItReturnsTheDefaultPageUrlIfNoPageIsSetInSettings() {
|
||||||
|
Reference in New Issue
Block a user