Refactor MailPoet\Newsletter to use new settings
[MAILPOET-1757]
This commit is contained in:
@ -2,8 +2,8 @@
|
||||
|
||||
namespace MailPoet\Newsletter\Shortcodes\Categories;
|
||||
|
||||
use MailPoet\Models\Setting;
|
||||
use MailPoet\Newsletter\Url as NewsletterUrl;
|
||||
use MailPoet\Settings\SettingsController;
|
||||
use MailPoet\Statistics\Track\Unsubscribes;
|
||||
use MailPoet\Subscription\Url as SubscriptionUrl;
|
||||
|
||||
@ -63,7 +63,8 @@ class Link {
|
||||
|
||||
static function processUrl($action, $url, $queue, $wp_user_preview = false) {
|
||||
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) :
|
||||
$url;
|
||||
}
|
||||
@ -73,8 +74,9 @@ class Link {
|
||||
) {
|
||||
switch($shortcode_action) {
|
||||
case 'subscription_unsubscribe_url':
|
||||
$settings = new SettingsController();
|
||||
// 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->track($newsletter->id, $subscriber->id, $queue->id);
|
||||
}
|
||||
|
@ -2,12 +2,19 @@
|
||||
namespace MailPoet\Newsletter;
|
||||
|
||||
use MailPoet\Models\Setting;
|
||||
use MailPoet\Models\Subscriber;
|
||||
use MailPoet\Newsletter\Links\Links;
|
||||
use MailPoet\Newsletter\Renderer\Renderer;
|
||||
use MailPoet\Newsletter\Shortcodes\Shortcodes;
|
||||
|
||||
class ViewInBrowser {
|
||||
|
||||
/** @var bool */
|
||||
private $is_tracking_enabled;
|
||||
|
||||
function __construct($is_tracking_enabled) {
|
||||
$this->is_tracking_enabled = $is_tracking_enabled;
|
||||
}
|
||||
|
||||
function view($data) {
|
||||
$wp_user_preview = (
|
||||
($data->subscriber && $data->subscriber->isWPUser() && $data->preview) ||
|
||||
@ -48,7 +55,7 @@ class ViewInBrowser {
|
||||
$wp_user_preview
|
||||
);
|
||||
$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(
|
||||
$subscriber->id,
|
||||
$queue->id,
|
||||
|
@ -3,7 +3,7 @@ namespace MailPoet\Test\Newsletter\Scheduler;
|
||||
|
||||
use Carbon\Carbon;
|
||||
use Codeception\Util\Fixtures;
|
||||
use Mailpoet\Config\Hooks;
|
||||
use MailPoet\Config\Hooks;
|
||||
use MailPoet\DI\ContainerWrapper;
|
||||
use MailPoet\Models\Newsletter;
|
||||
use MailPoet\Models\NewsletterOption;
|
||||
|
@ -257,7 +257,7 @@ class ShortcodesTest extends \MailPoetTest {
|
||||
$result =
|
||||
$shortcodes_object->process(array($shortcode));
|
||||
expect($result['0'])->regExp('/^http.*?action=unsubscribe/');
|
||||
Setting::setValue('tracking.enabled', true);
|
||||
$this->settings->set('tracking.enabled', true);
|
||||
$initial_shortcodes = array(
|
||||
'[link:subscription_unsubscribe_url]',
|
||||
'[link:subscription_manage_url]',
|
||||
@ -313,7 +313,7 @@ class ShortcodesTest extends \MailPoetTest {
|
||||
}, 10, 4);
|
||||
$result = $shortcodes_object->process(array($shortcode));
|
||||
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
|
||||
$shortcodes_object->queue = true;
|
||||
$result = $shortcodes_object->process(array($shortcode));
|
||||
|
@ -5,11 +5,11 @@ use MailPoet\Models\Newsletter;
|
||||
use MailPoet\Models\NewsletterLink;
|
||||
use MailPoet\Models\ScheduledTask;
|
||||
use MailPoet\Models\SendingQueue;
|
||||
use MailPoet\Models\Setting;
|
||||
use MailPoet\Models\Subscriber;
|
||||
use MailPoet\Newsletter\Links\Links;
|
||||
use MailPoet\Newsletter\ViewInBrowser;
|
||||
use MailPoet\Router\Router;
|
||||
use MailPoet\Settings\SettingsController;
|
||||
use MailPoet\Tasks\Sending as SendingTask;
|
||||
|
||||
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>',
|
||||
'text' => 'test'
|
||||
);
|
||||
$this->view_in_browser = new ViewInBrowser();
|
||||
$this->view_in_browser = new ViewInBrowser(false);
|
||||
// create newsletter
|
||||
$newsletter = Newsletter::create();
|
||||
$newsletter->hydrate($this->newsletter);
|
||||
@ -124,7 +124,8 @@ class ViewInBrowserTest extends \MailPoetTest {
|
||||
}
|
||||
|
||||
function testItConvertsShortcodes() {
|
||||
Setting::setValue('tracking.enabled', false);
|
||||
$settings = new SettingsController();
|
||||
$settings->set('tracking.enabled', false);
|
||||
$rendered_body = $this->view_in_browser->renderNewsletter(
|
||||
$this->newsletter,
|
||||
$this->subscriber,
|
||||
@ -136,10 +137,12 @@ class ViewInBrowserTest extends \MailPoetTest {
|
||||
}
|
||||
|
||||
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->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->subscriber,
|
||||
$queue,
|
||||
|
Reference in New Issue
Block a user