diff --git a/lib/Settings/Pages.php b/lib/Settings/Pages.php index 66f399f96a..7ef6c5ed30 100644 --- a/lib/Settings/Pages.php +++ b/lib/Settings/Pages.php @@ -65,7 +65,9 @@ class Pages { return array( 'id' => $page->ID, 'title' => $page->post_title, - 'preview_url' => get_permalink($page->ID), + 'preview_url' => add_query_arg(array( + 'preview' => 1 + ), get_permalink($page->ID)), 'edit_url' => get_edit_post_link($page->ID) ); } diff --git a/lib/Subscription/Pages.php b/lib/Subscription/Pages.php index 1eee934fc5..b43313edb3 100644 --- a/lib/Subscription/Pages.php +++ b/lib/Subscription/Pages.php @@ -8,10 +8,7 @@ use \MailPoet\Models\Segment; use \MailPoet\Util\Helpers; class Pages { - const DEMO_EMAIL = 'demo@mailpoet.com'; - function __construct() { - } function init() { @@ -22,6 +19,10 @@ class Pages { } } + function isPreview() { + return (array_key_exists('preview', $_GET)); + } + function setWindowTitle() { // TODO } @@ -39,13 +40,13 @@ class Pages { break; case 'unsubscribe': - if($subscriber !== false && $subscriber->email !== self::DEMO_EMAIL) { + if($subscriber !== false) { if($subscriber->status !== Subscriber::STATUS_UNSUBSCRIBED) { $subscriber->status = Subscriber::STATUS_UNSUBSCRIBED; $subscriber->save(); } } - return $this->getUnsubscribeTitle(); + return $this->getUnsubscribeTitle($subscriber); break; } return $title; @@ -70,24 +71,23 @@ class Pages { } private function getConfirmTitle($subscriber) { - if($subscriber === false) { + if($this->isPreview()) { + $title = sprintf( + __("You've subscribed to: %s"), + 'demo 1, demo 2' + ); + } else if($subscriber === false) { $title = __('Your confirmation link expired, please subscribe again.'); } else { - if($subscriber->email === self::DEMO_EMAIL) { - $segment_names = array('demo 1', 'demo 2'); - } else { - if($subscriber->status !== Subscriber::STATUS_SUBSCRIBED) { - $subscriber->status = Subscriber::STATUS_SUBSCRIBED; - $subscriber->save(); - } - - $segments = $subscriber->segments()->findMany(); - - $segment_names = array_map(function($segment) { - return $segment->name; - }, $segments); + if($subscriber->status !== Subscriber::STATUS_SUBSCRIBED) { + $subscriber->status = Subscriber::STATUS_SUBSCRIBED; + $subscriber->save(); } + $segment_names = array_map(function($segment) { + return $segment->name; + }, $subscriber->segments()->findMany()); + if(empty($segment_names)) { $title = __("You've subscribed!"); } else { @@ -109,13 +109,15 @@ class Pages { } } - private function getUnsubscribeTitle() { - return __("You've unsubscribed!"); + private function getUnsubscribeTitle($subscriber) { + if($this->isPreview() || $subscriber !== false) { + return __("You've unsubscribed!"); + } } private function getConfirmContent($subscriber) { - if($subscriber !== false) { + if($this->isPreview() || $subscriber !== false) { return __("Yup, we've added you to our list. You'll hear from us shortly."); } } @@ -242,15 +244,18 @@ class Pages { } private function getUnsubscribeContent($subscriber) { - $content = '
'.__("Great, you'll never hear from us again!").'
'; - if($subscriber !== false) { - $content .= ''. - str_replace( - array('[link]', '[/link]'), - array('', ''), - __('You made a mistake? [link]Undo unsubscribe.[/link]') - ). - '
'; + $content = ''; + if($this->isPreview() || $subscriber !== false) { + $content = ''.__("Great, you'll never hear from us again!").'
'; + if($subscriber !== false) { + $content .= ''. + str_replace( + array('[link]', '[/link]'), + array('', ''), + __('You made a mistake? [link]Undo unsubscribe.[/link]') + ). + '
'; + } } return $content; } @@ -263,12 +268,6 @@ class Pages { ? $_GET['mailpoet_email'] : null; - if(empty($token) || empty($email) || $email === self::DEMO_EMAIL) { - $subscriber = Subscriber::create(); - $subscriber->email = self::DEMO_EMAIL; - return $subscriber; - } - if(md5(AUTH_KEY.$email) === $token) { $subscriber = Subscriber::findOne($email); if($subscriber !== false) { diff --git a/views/settings/basics.html b/views/settings/basics.html index d569d26b4e..0e5492dac2 100644 --- a/views/settings/basics.html +++ b/views/settings/basics.html @@ -214,7 +214,7 @@ <% for page in pages %>