Enabling links on header and footer on preview
This commit is contained in:
@@ -23,28 +23,26 @@ class Link {
|
|||||||
case 'subscription_unsubscribe_url':
|
case 'subscription_unsubscribe_url':
|
||||||
return self::processUrl(
|
return self::processUrl(
|
||||||
$action,
|
$action,
|
||||||
SubscriptionUrl::getUnsubscribeUrl($subscriber),
|
SubscriptionUrl::getUnsubscribeUrl($wp_user_preview ? false : $subscriber),
|
||||||
$queue,
|
$queue
|
||||||
$wp_user_preview
|
|
||||||
);
|
);
|
||||||
|
|
||||||
case 'subscription_manage_url':
|
case 'subscription_manage_url':
|
||||||
return self::processUrl(
|
return self::processUrl(
|
||||||
$action,
|
$action,
|
||||||
SubscriptionUrl::getManageUrl($subscriber),
|
SubscriptionUrl::getManageUrl($wp_user_preview ? false : $subscriber),
|
||||||
$queue,
|
$queue
|
||||||
$wp_user_preview
|
|
||||||
);
|
);
|
||||||
|
|
||||||
case 'newsletter_view_in_browser_url':
|
case 'newsletter_view_in_browser_url':
|
||||||
$url = NewsletterUrl::getViewInBrowserUrl(
|
$url = NewsletterUrl::getViewInBrowserUrl(
|
||||||
$type = null,
|
$type = null,
|
||||||
$newsletter,
|
$newsletter,
|
||||||
$subscriber,
|
$wp_user_preview ? false : $subscriber,
|
||||||
$queue,
|
$queue,
|
||||||
$wp_user_preview
|
$wp_user_preview
|
||||||
);
|
);
|
||||||
return self::processUrl($action, $url, $queue, $wp_user_preview);
|
return self::processUrl($action, $url, $queue);
|
||||||
|
|
||||||
default:
|
default:
|
||||||
$shortcode = self::getFullShortcode($action);
|
$shortcode = self::getFullShortcode($action);
|
||||||
@@ -62,8 +60,7 @@ class Link {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static function processUrl($action, $url, $queue, $wp_user_preview = false) {
|
static function processUrl($action, $url, $queue) {
|
||||||
if($wp_user_preview) return '#';
|
|
||||||
return ($queue !== false && (boolean)Setting::getValue('tracking.enabled')) ?
|
return ($queue !== false && (boolean)Setting::getValue('tracking.enabled')) ?
|
||||||
self::getFullShortcode($action) :
|
self::getFullShortcode($action) :
|
||||||
$url;
|
$url;
|
||||||
@@ -111,4 +108,4 @@ class Link {
|
|||||||
private static function getFullShortcode($action) {
|
private static function getFullShortcode($action) {
|
||||||
return sprintf('[link:%s]', $action);
|
return sprintf('[link:%s]', $action);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -17,6 +17,7 @@ use MailPoet\Models\SendingQueue;
|
|||||||
use MailPoet\Newsletter\Scheduler\Scheduler;
|
use MailPoet\Newsletter\Scheduler\Scheduler;
|
||||||
use MailPoet\Newsletter\Url;
|
use MailPoet\Newsletter\Url;
|
||||||
use MailPoet\Router\Router;
|
use MailPoet\Router\Router;
|
||||||
|
use MailPoet\Subscription\Url as SubscriptionUrl;
|
||||||
|
|
||||||
class NewslettersTest extends \MailPoetTest {
|
class NewslettersTest extends \MailPoetTest {
|
||||||
function _before() {
|
function _before() {
|
||||||
@@ -699,21 +700,26 @@ class NewslettersTest extends \MailPoetTest {
|
|||||||
|
|
||||||
function testItCanSendAPreview() {
|
function testItCanSendAPreview() {
|
||||||
$subscriber = 'test@subscriber.com';
|
$subscriber = 'test@subscriber.com';
|
||||||
|
$unsubscribeLink = SubscriptionUrl::getUnsubscribeUrl(false);
|
||||||
|
$manageLink = SubscriptionUrl::getManageUrl(false);
|
||||||
|
$viewInBrowserLink = Url::getViewInBrowserUrl(null, $this->newsletter, false, false, true);
|
||||||
$data = array(
|
$data = array(
|
||||||
'subscriber' => $subscriber,
|
'subscriber' => $subscriber,
|
||||||
'id' => $this->newsletter->id,
|
'id' => $this->newsletter->id,
|
||||||
'mailer' => Stub::makeEmpty(
|
'mailer' => Stub::makeEmpty(
|
||||||
'\MailPoet\Mailer\Mailer',
|
'\MailPoet\Mailer\Mailer',
|
||||||
array(
|
array(
|
||||||
'send' => function($newsletter, $subscriber, $extra_params) {
|
'send' => function($newsletter, $subscriber, $extra_params)
|
||||||
|
use ($unsubscribeLink, $manageLink, $viewInBrowserLink)
|
||||||
|
{
|
||||||
expect(is_array($newsletter))->true();
|
expect(is_array($newsletter))->true();
|
||||||
expect($newsletter['body']['text'])->contains('Hello test');
|
expect($newsletter['body']['text'])->contains('Hello test');
|
||||||
expect($subscriber)->equals($subscriber);
|
expect($subscriber)->equals($subscriber);
|
||||||
expect($extra_params['unsubscribe_url'])->equals(home_url());
|
expect($extra_params['unsubscribe_url'])->equals(home_url());
|
||||||
// system links are replaced with hashes
|
// system links are replaced with hashes
|
||||||
expect($newsletter['body']['html'])->contains('href="#">View in browser');
|
expect($newsletter['body']['html'])->contains('href="'.$viewInBrowserLink.'">View in browser');
|
||||||
expect($newsletter['body']['html'])->contains('href="#">Unsubscribe');
|
expect($newsletter['body']['html'])->contains('href="'.$unsubscribeLink.'">Unsubscribe');
|
||||||
expect($newsletter['body']['html'])->contains('href="#">Manage subscription');
|
expect($newsletter['body']['html'])->contains('href="'.$manageLink.'">Manage subscription');
|
||||||
return array('response' => true);
|
return array('response' => true);
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
@@ -812,4 +818,4 @@ class NewslettersTest extends \MailPoetTest {
|
|||||||
\ORM::raw_execute('TRUNCATE ' . Segment::$_table);
|
\ORM::raw_execute('TRUNCATE ' . Segment::$_table);
|
||||||
\ORM::raw_execute('TRUNCATE ' . SendingQueue::$_table);
|
\ORM::raw_execute('TRUNCATE ' . SendingQueue::$_table);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -9,6 +9,8 @@ use MailPoet\Models\Setting;
|
|||||||
use MailPoet\Models\Subscriber;
|
use MailPoet\Models\Subscriber;
|
||||||
use MailPoet\Models\SubscriberCustomField;
|
use MailPoet\Models\SubscriberCustomField;
|
||||||
use MailPoet\Newsletter\Shortcodes\Categories\Date;
|
use MailPoet\Newsletter\Shortcodes\Categories\Date;
|
||||||
|
use MailPoet\Newsletter\Url as NewsletterUrl;
|
||||||
|
use MailPoet\Subscription\Url as SubscriptionUrl;
|
||||||
|
|
||||||
require_once(ABSPATH . 'wp-includes/pluggable.php');
|
require_once(ABSPATH . 'wp-includes/pluggable.php');
|
||||||
require_once(ABSPATH . 'wp-admin/includes/user.php');
|
require_once(ABSPATH . 'wp-admin/includes/user.php');
|
||||||
@@ -270,7 +272,7 @@ class ShortcodesTest extends \MailPoetTest {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function testItReturnsHashInsteadofLinksWhenPreviewIsEnabled() {
|
function testItReturnsDefaultLinksWhenPreviewIsEnabled() {
|
||||||
$shortcodes_object = $this->shortcodes_object;
|
$shortcodes_object = $this->shortcodes_object;
|
||||||
$shortcodes_object->wp_user_preview = true;
|
$shortcodes_object->wp_user_preview = true;
|
||||||
$shortcodes = array(
|
$shortcodes = array(
|
||||||
@@ -278,10 +280,15 @@ class ShortcodesTest extends \MailPoetTest {
|
|||||||
'[link:subscription_manage_url]',
|
'[link:subscription_manage_url]',
|
||||||
'[link:newsletter_view_in_browser_url]',
|
'[link:newsletter_view_in_browser_url]',
|
||||||
);
|
);
|
||||||
|
$links = array(
|
||||||
|
SubscriptionUrl::getUnsubscribeUrl(false),
|
||||||
|
SubscriptionUrl::getManageUrl(false),
|
||||||
|
NewsletterUrl::getViewInBrowserUrl(null, $this->newsletter, false, false, true)
|
||||||
|
);
|
||||||
$result = $shortcodes_object->process($shortcodes);
|
$result = $shortcodes_object->process($shortcodes);
|
||||||
// hash is returned
|
// hash is returned
|
||||||
foreach($result as $index => $transformed_shortcode) {
|
foreach($result as $index => $transformed_shortcode) {
|
||||||
expect($transformed_shortcode)->equals('#');
|
expect($transformed_shortcode)->equals($links[$index]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -365,4 +372,4 @@ class ShortcodesTest extends \MailPoetTest {
|
|||||||
wp_delete_user($this->WP_user->ID);
|
wp_delete_user($this->WP_user->ID);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@@ -159,20 +159,6 @@ class ViewInBrowserTest extends \MailPoetTest {
|
|||||||
expect($rendered_body)->contains('<a href="http://google.com">');
|
expect($rendered_body)->contains('<a href="http://google.com">');
|
||||||
}
|
}
|
||||||
|
|
||||||
function testReplacesLinkShortcodesWithUrlHashWhenPreviewIsEnabledAndNewsletterWasSent() {
|
|
||||||
$queue = $this->queue;
|
|
||||||
$queue->newsletter_rendered_body = $this->queue_rendered_newsletter_with_tracking;
|
|
||||||
$rendered_body = $this->view_in_browser->renderNewsletter(
|
|
||||||
$this->newsletter,
|
|
||||||
$this->subscriber,
|
|
||||||
$queue,
|
|
||||||
$preview = true
|
|
||||||
);
|
|
||||||
// link shortcodes should be replaced with a hash (#)
|
|
||||||
expect($rendered_body)->notContains('[mailpoet_click_data]');
|
|
||||||
expect($rendered_body)->contains('<a href="#">');
|
|
||||||
}
|
|
||||||
|
|
||||||
function testRemovesOpenTrackingTagWhenPreviewIsEnabledAndNewsletterWasSent() {
|
function testRemovesOpenTrackingTagWhenPreviewIsEnabledAndNewsletterWasSent() {
|
||||||
$queue = $this->queue;
|
$queue = $this->queue;
|
||||||
$queue->newsletter_rendered_body = $this->queue_rendered_newsletter_with_tracking;
|
$queue->newsletter_rendered_body = $this->queue_rendered_newsletter_with_tracking;
|
||||||
@@ -193,4 +179,4 @@ class ViewInBrowserTest extends \MailPoetTest {
|
|||||||
\ORM::raw_execute('TRUNCATE ' . Subscriber::$_table);
|
\ORM::raw_execute('TRUNCATE ' . Subscriber::$_table);
|
||||||
\ORM::raw_execute('TRUNCATE ' . SendingQueue::$_table);
|
\ORM::raw_execute('TRUNCATE ' . SendingQueue::$_table);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user