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\Newsletter\Scheduler\WelcomeScheduler;
|
||||||
use MailPoet\Settings\SettingsController;
|
use MailPoet\Settings\SettingsController;
|
||||||
use MailPoet\Settings\TrackingConfig;
|
use MailPoet\Settings\TrackingConfig;
|
||||||
|
use MailPoet\Statistics\Track\SubscriberHandler;
|
||||||
use MailPoet\Statistics\Track\Unsubscribes;
|
use MailPoet\Statistics\Track\Unsubscribes;
|
||||||
use MailPoet\Subscribers\LinkTokens;
|
use MailPoet\Subscribers\LinkTokens;
|
||||||
use MailPoet\Subscribers\NewSubscriberNotificationMailer;
|
use MailPoet\Subscribers\NewSubscriberNotificationMailer;
|
||||||
@@ -64,6 +65,9 @@ class Pages {
|
|||||||
/** @var ManageSubscriptionFormRenderer */
|
/** @var ManageSubscriptionFormRenderer */
|
||||||
private $manageSubscriptionFormRenderer;
|
private $manageSubscriptionFormRenderer;
|
||||||
|
|
||||||
|
/** @var SubscriberHandler */
|
||||||
|
private $subscriberHandler;
|
||||||
|
|
||||||
/** @var SubscribersRepository */
|
/** @var SubscribersRepository */
|
||||||
private $subscribersRepository;
|
private $subscribersRepository;
|
||||||
|
|
||||||
@@ -82,6 +86,7 @@ class Pages {
|
|||||||
TemplateRenderer $templateRenderer,
|
TemplateRenderer $templateRenderer,
|
||||||
Unsubscribes $unsubscribesTracker,
|
Unsubscribes $unsubscribesTracker,
|
||||||
ManageSubscriptionFormRenderer $manageSubscriptionFormRenderer,
|
ManageSubscriptionFormRenderer $manageSubscriptionFormRenderer,
|
||||||
|
SubscriberHandler $subscriberHandler,
|
||||||
SubscribersRepository $subscribersRepository,
|
SubscribersRepository $subscribersRepository,
|
||||||
TrackingConfig $trackingConfig
|
TrackingConfig $trackingConfig
|
||||||
) {
|
) {
|
||||||
@@ -96,6 +101,7 @@ class Pages {
|
|||||||
$this->templateRenderer = $templateRenderer;
|
$this->templateRenderer = $templateRenderer;
|
||||||
$this->unsubscribesTracker = $unsubscribesTracker;
|
$this->unsubscribesTracker = $unsubscribesTracker;
|
||||||
$this->manageSubscriptionFormRenderer = $manageSubscriptionFormRenderer;
|
$this->manageSubscriptionFormRenderer = $manageSubscriptionFormRenderer;
|
||||||
|
$this->subscriberHandler = $subscriberHandler;
|
||||||
$this->subscribersRepository = $subscribersRepository;
|
$this->subscribersRepository = $subscribersRepository;
|
||||||
$this->trackingConfig = $trackingConfig;
|
$this->trackingConfig = $trackingConfig;
|
||||||
}
|
}
|
||||||
@@ -169,6 +175,9 @@ class Pages {
|
|||||||
$this->subscriber->unconfirmedData = null;
|
$this->subscriber->unconfirmedData = null;
|
||||||
$this->subscriber->save();
|
$this->subscriber->save();
|
||||||
|
|
||||||
|
// start subscriber tracking
|
||||||
|
$this->subscriberHandler->identifyByEmail($this->subscriber->email);
|
||||||
|
|
||||||
if ($this->subscriber->getErrors() !== false) {
|
if ($this->subscriber->getErrors() !== false) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
@@ -63,8 +63,8 @@ class SubscriberCookieCest {
|
|||||||
$this->checkSubscriberCookie($i, $email);
|
$this->checkSubscriberCookie($i, $email);
|
||||||
}
|
}
|
||||||
|
|
||||||
public function setSubscriberCookieOnWooCommerceCheckout(AcceptanceTester $i) {
|
public function setSubscriberCookieOnWooCheckoutAndSubscriptionConfirmation(AcceptanceTester $i) {
|
||||||
$i->wantTo('Set subscriber cookie on WooCommerce checkout');
|
$i->wantTo('Set subscriber cookie on WooCommerce checkout and subscription confirmation');
|
||||||
|
|
||||||
$i->activateWooCommerce();
|
$i->activateWooCommerce();
|
||||||
$product = (new WooCommerceProduct($i))->create();
|
$product = (new WooCommerceProduct($i))->create();
|
||||||
@@ -76,6 +76,18 @@ class SubscriberCookieCest {
|
|||||||
|
|
||||||
// subscriber cookie should be set after order checkout
|
// subscriber cookie should be set after order checkout
|
||||||
$this->checkSubscriberCookie($i, $email);
|
$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) {
|
public function setSubscriberCookieOnLinkClick(AcceptanceTester $i) {
|
||||||
|
@@ -19,6 +19,7 @@ use MailPoet\Models\SubscriberSegment;
|
|||||||
use MailPoet\Newsletter\Scheduler\WelcomeScheduler;
|
use MailPoet\Newsletter\Scheduler\WelcomeScheduler;
|
||||||
use MailPoet\Settings\SettingsController;
|
use MailPoet\Settings\SettingsController;
|
||||||
use MailPoet\Settings\TrackingConfig;
|
use MailPoet\Settings\TrackingConfig;
|
||||||
|
use MailPoet\Statistics\Track\SubscriberHandler;
|
||||||
use MailPoet\Statistics\Track\Unsubscribes;
|
use MailPoet\Statistics\Track\Unsubscribes;
|
||||||
use MailPoet\Subscribers\LinkTokens;
|
use MailPoet\Subscribers\LinkTokens;
|
||||||
use MailPoet\Subscribers\NewSubscriberNotificationMailer;
|
use MailPoet\Subscribers\NewSubscriberNotificationMailer;
|
||||||
@@ -214,6 +215,7 @@ class PagesTest extends \MailPoetTest {
|
|||||||
$container->get(Renderer::class),
|
$container->get(Renderer::class),
|
||||||
$unsubscribesMock ?? $container->get(Unsubscribes::class),
|
$unsubscribesMock ?? $container->get(Unsubscribes::class),
|
||||||
$container->get(ManageSubscriptionFormRenderer::class),
|
$container->get(ManageSubscriptionFormRenderer::class),
|
||||||
|
$container->get(SubscriberHandler::class),
|
||||||
$this->subscribersRepository,
|
$this->subscribersRepository,
|
||||||
$container->get(TrackingConfig::class)
|
$container->get(TrackingConfig::class)
|
||||||
);
|
);
|
||||||
|
Reference in New Issue
Block a user