Set subscriber cookie on subscription confirmation link click
[MAILPOET-3924]
This commit is contained in:
@@ -10,6 +10,7 @@ use MailPoet\Models\SubscriberSegment;
|
||||
use MailPoet\Newsletter\Scheduler\WelcomeScheduler;
|
||||
use MailPoet\Settings\SettingsController;
|
||||
use MailPoet\Settings\TrackingConfig;
|
||||
use MailPoet\Statistics\Track\SubscriberHandler;
|
||||
use MailPoet\Statistics\Track\Unsubscribes;
|
||||
use MailPoet\Subscribers\LinkTokens;
|
||||
use MailPoet\Subscribers\NewSubscriberNotificationMailer;
|
||||
@@ -64,6 +65,9 @@ class Pages {
|
||||
/** @var ManageSubscriptionFormRenderer */
|
||||
private $manageSubscriptionFormRenderer;
|
||||
|
||||
/** @var SubscriberHandler */
|
||||
private $subscriberHandler;
|
||||
|
||||
/** @var SubscribersRepository */
|
||||
private $subscribersRepository;
|
||||
|
||||
@@ -82,6 +86,7 @@ class Pages {
|
||||
TemplateRenderer $templateRenderer,
|
||||
Unsubscribes $unsubscribesTracker,
|
||||
ManageSubscriptionFormRenderer $manageSubscriptionFormRenderer,
|
||||
SubscriberHandler $subscriberHandler,
|
||||
SubscribersRepository $subscribersRepository,
|
||||
TrackingConfig $trackingConfig
|
||||
) {
|
||||
@@ -96,6 +101,7 @@ class Pages {
|
||||
$this->templateRenderer = $templateRenderer;
|
||||
$this->unsubscribesTracker = $unsubscribesTracker;
|
||||
$this->manageSubscriptionFormRenderer = $manageSubscriptionFormRenderer;
|
||||
$this->subscriberHandler = $subscriberHandler;
|
||||
$this->subscribersRepository = $subscribersRepository;
|
||||
$this->trackingConfig = $trackingConfig;
|
||||
}
|
||||
@@ -169,6 +175,9 @@ class Pages {
|
||||
$this->subscriber->unconfirmedData = null;
|
||||
$this->subscriber->save();
|
||||
|
||||
// start subscriber tracking
|
||||
$this->subscriberHandler->identifyByEmail($this->subscriber->email);
|
||||
|
||||
if ($this->subscriber->getErrors() !== false) {
|
||||
return false;
|
||||
}
|
||||
|
@@ -63,8 +63,8 @@ class SubscriberCookieCest {
|
||||
$this->checkSubscriberCookie($i, $email);
|
||||
}
|
||||
|
||||
public function setSubscriberCookieOnWooCommerceCheckout(AcceptanceTester $i) {
|
||||
$i->wantTo('Set subscriber cookie on WooCommerce checkout');
|
||||
public function setSubscriberCookieOnWooCheckoutAndSubscriptionConfirmation(AcceptanceTester $i) {
|
||||
$i->wantTo('Set subscriber cookie on WooCommerce checkout and subscription confirmation');
|
||||
|
||||
$i->activateWooCommerce();
|
||||
$product = (new WooCommerceProduct($i))->create();
|
||||
@@ -76,6 +76,18 @@ class SubscriberCookieCest {
|
||||
|
||||
// subscriber cookie should be set after order checkout
|
||||
$this->checkSubscriberCookie($i, $email);
|
||||
|
||||
// click on subscription confirmation link
|
||||
$i->resetCookie(self::SUBSCRIBER_COOKIE_NAME);
|
||||
$i->cantSeeCookie(self::SUBSCRIBER_COOKIE_NAME);
|
||||
$i->checkEmailWasReceived('Confirm your subscription to MP Dev');
|
||||
$i->click(Locator::contains('span.subject', 'Confirm your subscription to MP Dev'));
|
||||
$i->switchToIframe('#preview-html');
|
||||
$i->click('I confirm my subscription!');
|
||||
$i->switchToNextTab();
|
||||
|
||||
// subscriber cookie should be set after subscription confirmation
|
||||
$this->checkSubscriberCookie($i, $email);
|
||||
}
|
||||
|
||||
public function setSubscriberCookieOnLinkClick(AcceptanceTester $i) {
|
||||
|
@@ -19,6 +19,7 @@ use MailPoet\Models\SubscriberSegment;
|
||||
use MailPoet\Newsletter\Scheduler\WelcomeScheduler;
|
||||
use MailPoet\Settings\SettingsController;
|
||||
use MailPoet\Settings\TrackingConfig;
|
||||
use MailPoet\Statistics\Track\SubscriberHandler;
|
||||
use MailPoet\Statistics\Track\Unsubscribes;
|
||||
use MailPoet\Subscribers\LinkTokens;
|
||||
use MailPoet\Subscribers\NewSubscriberNotificationMailer;
|
||||
@@ -214,6 +215,7 @@ class PagesTest extends \MailPoetTest {
|
||||
$container->get(Renderer::class),
|
||||
$unsubscribesMock ?? $container->get(Unsubscribes::class),
|
||||
$container->get(ManageSubscriptionFormRenderer::class),
|
||||
$container->get(SubscriberHandler::class),
|
||||
$this->subscribersRepository,
|
||||
$container->get(TrackingConfig::class)
|
||||
);
|
||||
|
Reference in New Issue
Block a user