diff --git a/lib/Models/Subscriber.php b/lib/Models/Subscriber.php index 255eb8146e..e5630d00fa 100644 --- a/lib/Models/Subscriber.php +++ b/lib/Models/Subscriber.php @@ -106,7 +106,8 @@ class Subscriber extends Model { function getLinkToken() { if ($this->link_token === null) { $this->link_token = self::generateToken($this->email); - $this->save(); + // `$this->save()` fails if the subscriber has subscriptions, segments or custom fields + \ORM::rawExecute(sprintf('UPDATE %s SET link_token = ? WHERE email = ?', self::$_table), [$this->link_token, $this->email]); } return $this->link_token; } diff --git a/tests/integration/Router/Endpoints/ViewInBrowserTest.php b/tests/integration/Router/Endpoints/ViewInBrowserTest.php index 3e8469ef05..a9a8ebc367 100644 --- a/tests/integration/Router/Endpoints/ViewInBrowserTest.php +++ b/tests/integration/Router/Endpoints/ViewInBrowserTest.php @@ -88,6 +88,7 @@ class ViewInBrowserTest extends \MailPoetTest { 'queue' => $this->queue, 'subscriber' => $subscriber, 'newsletter' => $this->newsletter, + 'subscriber_token' => 'somewrongtoken', ] ); expect($this->view_in_browser->_validateBrowserPreviewData($data))->false();