Refactor MailPoet\Newsletter to use new settings
[MAILPOET-1757]
This commit is contained in:
@ -2,8 +2,8 @@
|
|||||||
|
|
||||||
namespace MailPoet\Newsletter\Shortcodes\Categories;
|
namespace MailPoet\Newsletter\Shortcodes\Categories;
|
||||||
|
|
||||||
use MailPoet\Models\Setting;
|
|
||||||
use MailPoet\Newsletter\Url as NewsletterUrl;
|
use MailPoet\Newsletter\Url as NewsletterUrl;
|
||||||
|
use MailPoet\Settings\SettingsController;
|
||||||
use MailPoet\Statistics\Track\Unsubscribes;
|
use MailPoet\Statistics\Track\Unsubscribes;
|
||||||
use MailPoet\Subscription\Url as SubscriptionUrl;
|
use MailPoet\Subscription\Url as SubscriptionUrl;
|
||||||
|
|
||||||
@ -63,7 +63,8 @@ class Link {
|
|||||||
|
|
||||||
static function processUrl($action, $url, $queue, $wp_user_preview = false) {
|
static function processUrl($action, $url, $queue, $wp_user_preview = false) {
|
||||||
if($wp_user_preview) return $url;
|
if($wp_user_preview) return $url;
|
||||||
return ($queue !== false && (boolean)Setting::getValue('tracking.enabled')) ?
|
$settings = new SettingsController();
|
||||||
|
return ($queue !== false && (boolean)$settings->get('tracking.enabled')) ?
|
||||||
self::getFullShortcode($action) :
|
self::getFullShortcode($action) :
|
||||||
$url;
|
$url;
|
||||||
}
|
}
|
||||||
@ -73,8 +74,9 @@ class Link {
|
|||||||
) {
|
) {
|
||||||
switch($shortcode_action) {
|
switch($shortcode_action) {
|
||||||
case 'subscription_unsubscribe_url':
|
case 'subscription_unsubscribe_url':
|
||||||
|
$settings = new SettingsController();
|
||||||
// track unsubscribe event
|
// track unsubscribe event
|
||||||
if((boolean)Setting::getValue('tracking.enabled') && !$wp_user_preview) {
|
if((boolean)$settings->get('tracking.enabled') && !$wp_user_preview) {
|
||||||
$unsubscribe_event = new Unsubscribes();
|
$unsubscribe_event = new Unsubscribes();
|
||||||
$unsubscribe_event->track($newsletter->id, $subscriber->id, $queue->id);
|
$unsubscribe_event->track($newsletter->id, $subscriber->id, $queue->id);
|
||||||
}
|
}
|
||||||
|
@ -2,12 +2,19 @@
|
|||||||
namespace MailPoet\Newsletter;
|
namespace MailPoet\Newsletter;
|
||||||
|
|
||||||
use MailPoet\Models\Setting;
|
use MailPoet\Models\Setting;
|
||||||
use MailPoet\Models\Subscriber;
|
|
||||||
use MailPoet\Newsletter\Links\Links;
|
use MailPoet\Newsletter\Links\Links;
|
||||||
use MailPoet\Newsletter\Renderer\Renderer;
|
use MailPoet\Newsletter\Renderer\Renderer;
|
||||||
use MailPoet\Newsletter\Shortcodes\Shortcodes;
|
use MailPoet\Newsletter\Shortcodes\Shortcodes;
|
||||||
|
|
||||||
class ViewInBrowser {
|
class ViewInBrowser {
|
||||||
|
|
||||||
|
/** @var bool */
|
||||||
|
private $is_tracking_enabled;
|
||||||
|
|
||||||
|
function __construct($is_tracking_enabled) {
|
||||||
|
$this->is_tracking_enabled = $is_tracking_enabled;
|
||||||
|
}
|
||||||
|
|
||||||
function view($data) {
|
function view($data) {
|
||||||
$wp_user_preview = (
|
$wp_user_preview = (
|
||||||
($data->subscriber && $data->subscriber->isWPUser() && $data->preview) ||
|
($data->subscriber && $data->subscriber->isWPUser() && $data->preview) ||
|
||||||
@ -48,7 +55,7 @@ class ViewInBrowser {
|
|||||||
$wp_user_preview
|
$wp_user_preview
|
||||||
);
|
);
|
||||||
$rendered_newsletter = $shortcodes->replace($newsletter_body);
|
$rendered_newsletter = $shortcodes->replace($newsletter_body);
|
||||||
if(!$wp_user_preview && $queue && $subscriber && (boolean)Setting::getValue('tracking.enabled')) {
|
if(!$wp_user_preview && $queue && $subscriber && $this->is_tracking_enabled) {
|
||||||
$rendered_newsletter = Links::replaceSubscriberData(
|
$rendered_newsletter = Links::replaceSubscriberData(
|
||||||
$subscriber->id,
|
$subscriber->id,
|
||||||
$queue->id,
|
$queue->id,
|
||||||
|
@ -3,7 +3,7 @@ namespace MailPoet\Test\Newsletter\Scheduler;
|
|||||||
|
|
||||||
use Carbon\Carbon;
|
use Carbon\Carbon;
|
||||||
use Codeception\Util\Fixtures;
|
use Codeception\Util\Fixtures;
|
||||||
use Mailpoet\Config\Hooks;
|
use MailPoet\Config\Hooks;
|
||||||
use MailPoet\DI\ContainerWrapper;
|
use MailPoet\DI\ContainerWrapper;
|
||||||
use MailPoet\Models\Newsletter;
|
use MailPoet\Models\Newsletter;
|
||||||
use MailPoet\Models\NewsletterOption;
|
use MailPoet\Models\NewsletterOption;
|
||||||
|
@ -257,7 +257,7 @@ class ShortcodesTest extends \MailPoetTest {
|
|||||||
$result =
|
$result =
|
||||||
$shortcodes_object->process(array($shortcode));
|
$shortcodes_object->process(array($shortcode));
|
||||||
expect($result['0'])->regExp('/^http.*?action=unsubscribe/');
|
expect($result['0'])->regExp('/^http.*?action=unsubscribe/');
|
||||||
Setting::setValue('tracking.enabled', true);
|
$this->settings->set('tracking.enabled', true);
|
||||||
$initial_shortcodes = array(
|
$initial_shortcodes = array(
|
||||||
'[link:subscription_unsubscribe_url]',
|
'[link:subscription_unsubscribe_url]',
|
||||||
'[link:subscription_manage_url]',
|
'[link:subscription_manage_url]',
|
||||||
@ -313,7 +313,7 @@ class ShortcodesTest extends \MailPoetTest {
|
|||||||
}, 10, 4);
|
}, 10, 4);
|
||||||
$result = $shortcodes_object->process(array($shortcode));
|
$result = $shortcodes_object->process(array($shortcode));
|
||||||
expect($result[0])->equals('success');
|
expect($result[0])->equals('success');
|
||||||
Setting::setValue('tracking.enabled', true);
|
$this->settings->set('tracking.enabled', true);
|
||||||
// tracking function only works during sending, so queue object must not be false
|
// tracking function only works during sending, so queue object must not be false
|
||||||
$shortcodes_object->queue = true;
|
$shortcodes_object->queue = true;
|
||||||
$result = $shortcodes_object->process(array($shortcode));
|
$result = $shortcodes_object->process(array($shortcode));
|
||||||
|
@ -5,11 +5,11 @@ use MailPoet\Models\Newsletter;
|
|||||||
use MailPoet\Models\NewsletterLink;
|
use MailPoet\Models\NewsletterLink;
|
||||||
use MailPoet\Models\ScheduledTask;
|
use MailPoet\Models\ScheduledTask;
|
||||||
use MailPoet\Models\SendingQueue;
|
use MailPoet\Models\SendingQueue;
|
||||||
use MailPoet\Models\Setting;
|
|
||||||
use MailPoet\Models\Subscriber;
|
use MailPoet\Models\Subscriber;
|
||||||
use MailPoet\Newsletter\Links\Links;
|
use MailPoet\Newsletter\Links\Links;
|
||||||
use MailPoet\Newsletter\ViewInBrowser;
|
use MailPoet\Newsletter\ViewInBrowser;
|
||||||
use MailPoet\Router\Router;
|
use MailPoet\Router\Router;
|
||||||
|
use MailPoet\Settings\SettingsController;
|
||||||
use MailPoet\Tasks\Sending as SendingTask;
|
use MailPoet\Tasks\Sending as SendingTask;
|
||||||
|
|
||||||
class ViewInBrowserTest extends \MailPoetTest {
|
class ViewInBrowserTest extends \MailPoetTest {
|
||||||
@ -71,7 +71,7 @@ class ViewInBrowserTest extends \MailPoetTest {
|
|||||||
'html' => '<p>Newsletter from queue. Hello, [subscriber:firstname | default:reader]. <a href="' . Links::DATA_TAG_CLICK . '-90e56">Unsubscribe</a> or visit <a href="' . Links::DATA_TAG_CLICK . '-i1893">Google</a><img alt="" class="" src="' . Links::DATA_TAG_OPEN . '"></p>',
|
'html' => '<p>Newsletter from queue. Hello, [subscriber:firstname | default:reader]. <a href="' . Links::DATA_TAG_CLICK . '-90e56">Unsubscribe</a> or visit <a href="' . Links::DATA_TAG_CLICK . '-i1893">Google</a><img alt="" class="" src="' . Links::DATA_TAG_OPEN . '"></p>',
|
||||||
'text' => 'test'
|
'text' => 'test'
|
||||||
);
|
);
|
||||||
$this->view_in_browser = new ViewInBrowser();
|
$this->view_in_browser = new ViewInBrowser(false);
|
||||||
// create newsletter
|
// create newsletter
|
||||||
$newsletter = Newsletter::create();
|
$newsletter = Newsletter::create();
|
||||||
$newsletter->hydrate($this->newsletter);
|
$newsletter->hydrate($this->newsletter);
|
||||||
@ -124,7 +124,8 @@ class ViewInBrowserTest extends \MailPoetTest {
|
|||||||
}
|
}
|
||||||
|
|
||||||
function testItConvertsShortcodes() {
|
function testItConvertsShortcodes() {
|
||||||
Setting::setValue('tracking.enabled', false);
|
$settings = new SettingsController();
|
||||||
|
$settings->set('tracking.enabled', false);
|
||||||
$rendered_body = $this->view_in_browser->renderNewsletter(
|
$rendered_body = $this->view_in_browser->renderNewsletter(
|
||||||
$this->newsletter,
|
$this->newsletter,
|
||||||
$this->subscriber,
|
$this->subscriber,
|
||||||
@ -136,10 +137,12 @@ class ViewInBrowserTest extends \MailPoetTest {
|
|||||||
}
|
}
|
||||||
|
|
||||||
function testItRewritesLinksToRouterEndpointWhenTrackingIsEnabled() {
|
function testItRewritesLinksToRouterEndpointWhenTrackingIsEnabled() {
|
||||||
Setting::setValue('tracking.enabled', true);
|
$settings = new SettingsController();
|
||||||
|
$settings->set('tracking.enabled', true);
|
||||||
|
$view_in_browser = new ViewInBrowser(true);
|
||||||
$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;
|
||||||
$rendered_body = $this->view_in_browser->renderNewsletter(
|
$rendered_body = $view_in_browser->renderNewsletter(
|
||||||
$this->newsletter,
|
$this->newsletter,
|
||||||
$this->subscriber,
|
$this->subscriber,
|
||||||
$queue,
|
$queue,
|
||||||
|
Reference in New Issue
Block a user