Merge pull request #876 from mailpoet/manage_subscription_shortcode_fix

Depreciates and removes certain link shortcodes [MAILPOET-895]
This commit is contained in:
Tautvidas Sipavičius
2017-04-27 15:51:26 +03:00
committed by GitHub
4 changed files with 39 additions and 96 deletions

View File

@@ -11,13 +11,13 @@
/*jshint unused:false */
/*global tinymce:true */
tinymce.PluginManager.add('mailpoet_shortcodes', function(editor, url) {
var appendLabelAndClose = function(text) {
editor.insertContent('[' + text + ']');
var appendLabelAndClose = function(shortcode) {
editor.insertContent(shortcode);
editor.windowManager.close();
},
generateOnClickFunc = function(id) {
generateOnClickFunc = function(shortcode) {
return function() {
appendLabelAndClose(id);
appendLabelAndClose(shortcode);
};
};

View File

@@ -18,20 +18,6 @@ class Link {
$wp_user_preview
) {
switch($action) {
case 'subscription_unsubscribe':
$action = 'subscription_unsubscribe_url';
$url = self::processUrl(
$action,
SubscriptionUrl::getUnsubscribeUrl($subscriber),
$queue,
$wp_user_preview
);
return sprintf(
'<a target="_blank" href="%s">%s</a>',
$url,
__('Unsubscribe', 'mailpoet')
);
case 'subscription_unsubscribe_url':
return self::processUrl(
$action,
@@ -40,19 +26,6 @@ class Link {
$wp_user_preview
);
case 'subscription_manage':
$url = self::processUrl(
$action = 'subscription_manage_url',
SubscriptionUrl::getManageUrl($subscriber),
$queue,
$wp_user_preview
);
return sprintf(
'<a target="_blank" href="%s">%s</a>',
$url,
__('Manage subscription', 'mailpoet')
);
case 'subscription_manage_url':
return self::processUrl(
$action,
@@ -61,22 +34,6 @@ class Link {
$wp_user_preview
);
case 'newsletter_view_in_browser':
$action = 'newsletter_view_in_browser_url';
$url = NewsletterUrl::getViewInBrowserUrl(
$type = null,
$newsletter,
$subscriber,
$queue,
$wp_user_preview
);
$url = self::processUrl($action, $url, $queue, $wp_user_preview);
return sprintf(
'<a target="_blank" href="%s">%s</a>',
$url,
__('View in your browser', 'mailpoet')
);
case 'newsletter_view_in_browser_url':
$url = NewsletterUrl::getViewInBrowserUrl(
$type = null,
@@ -88,7 +45,7 @@ class Link {
return self::processUrl($action, $url, $queue, $wp_user_preview);
default:
$shortcode = self::getShortcode($action);
$shortcode = self::getFullShortcode($action);
$url = apply_filters(
'mailpoet_newsletter_shortcode_link',
$shortcode,
@@ -106,7 +63,7 @@ class Link {
static function processUrl($action, $url, $queue, $wp_user_preview = false) {
if($wp_user_preview) return '#';
return ($queue !== false && (boolean)Setting::getValue('tracking.enabled')) ?
self::getShortcode($action) :
self::getFullShortcode($action) :
$url;
}
@@ -134,7 +91,7 @@ class Link {
);
break;
default:
$shortcode = self::getShortcode($shortcode_action);
$shortcode = self::getFullShortcode($shortcode_action);
$url = apply_filters(
'mailpoet_newsletter_shortcode_link',
$shortcode,
@@ -149,7 +106,7 @@ class Link {
return $url;
}
private static function getShortcode($action) {
private static function getFullShortcode($action) {
return sprintf('[link:%s]', $action);
}
}

View File

@@ -10,83 +10,95 @@ class ShortcodesHelper {
__('Subscriber', 'mailpoet') => array(
array(
'text' => __('First Name', 'mailpoet'),
'shortcode' => 'subscriber:firstname | default:reader',
'shortcode' => '[subscriber:firstname | default:reader]',
),
array(
'text' => __('Last Name', 'mailpoet'),
'shortcode' => 'subscriber:lastname | default:reader',
'shortcode' => '[subscriber:lastname | default:reader]',
),
array(
'text' => __('Email Address', 'mailpoet'),
'shortcode' => 'subscriber:email',
'shortcode' => '[subscriber:email]',
),
array(
'text' => __('WordPress User Display Name', 'mailpoet'),
'shortcode' => 'subscriber:displayname | default:member',
'shortcode' => '[subscriber:displayname | default:member]',
),
array(
'text' => __('Total Number of Subscribers', 'mailpoet'),
'shortcode' => 'subscriber:count',
'shortcode' => '[subscriber:count]',
)
),
__('Newsletter', 'mailpoet') => array(
array(
'text' => __('Newsletter Subject', 'mailpoet'),
'shortcode' => 'newsletter:subject',
'shortcode' => '[newsletter:subject]',
)
),
__('Post Notifications', 'mailpoet') => array(
array(
'text' => __('Total Number of Posts or Pages', 'mailpoet'),
'shortcode' => 'newsletter:total',
'shortcode' => '[newsletter:total]',
),
array(
'text' => __('Most Recent Post Title', 'mailpoet'),
'shortcode' => 'newsletter:post_title',
'shortcode' => '[newsletter:post_title]',
),
array(
'text' => __('Issue Number', 'mailpoet'),
'shortcode' => 'newsletter:number',
'shortcode' => '[newsletter:number]',
)
),
__('Date', 'mailpoet') => array(
array(
'text' => __('Current day of the month number', 'mailpoet'),
'shortcode' => 'date:d',
'shortcode' => '[date:d]',
),
array(
'text' => __('Current day of the month in ordinal form, i.e. 2nd, 3rd, 4th, etc.', 'mailpoet'),
'shortcode' => 'date:dordinal',
'shortcode' => '[date:dordinal]',
),
array(
'text' => __('Full name of current day', 'mailpoet'),
'shortcode' => 'date:dtext',
'shortcode' => '[date:dtext]',
),
array(
'text' => __('Current month number', 'mailpoet'),
'shortcode' => 'date:m',
'shortcode' => '[date:m]',
),
array(
'text' => __('Full name of current month', 'mailpoet'),
'shortcode' => 'date:mtext',
'shortcode' => '[date:mtext]',
),
array(
'text' => __('Year', 'mailpoet'),
'shortcode' => 'date:y',
'shortcode' => '[date:y]',
)
),
__('Links', 'mailpoet') => array(
array(
'text' => __('Unsubscribe link', 'mailpoet'),
'shortcode' => 'link:subscription_unsubscribe',
'shortcode' => sprintf(
'<a target="_blank" href="%s">%s</a>',
'[link:subscription_unsubscribe_url]',
__('Unsubscribe', 'mailpoet')
)
),
array(
'text' => __('Edit subscription page link', 'mailpoet'),
'shortcode' => 'link:subscription_manage',
'shortcode' => sprintf(
'<a target="_blank" href="%s">%s</a>',
'[link:subscription_manage_url]',
__('Manage subscription', 'mailpoet')
)
),
array(
'text' => __('View in browser link', 'mailpoet'),
'shortcode' => 'link:newsletter_view_in_browser',
'shortcode' => sprintf(
'<a target="_blank" href="%s">%s</a>',
'[link:newsletter_view_in_browser_url]',
__('View in your browser', 'mailpoet')
)
)
)
);

View File

@@ -212,24 +212,13 @@ class ShortcodesTest extends MailPoetTest {
function testItCanProcessLinkShortcodes() {
$shortcodes_object = $this->shortcodes_object;
$result =
$shortcodes_object->process(array('[link:subscription_unsubscribe]'));
expect($result['0'])->regExp('/^<a.*?\/a>$/');
expect($result['0'])->regExp('/action=unsubscribe/');
$result =
$shortcodes_object->process(array('[link:subscription_unsubscribe_url]'));
expect($result['0'])->regExp('/^http.*?action=unsubscribe/');
$result =
$shortcodes_object->process(array('[link:subscription_manage]'));
expect($result['0'])->regExp('/^<a.*?\/a>$/');
expect($result['0'])->regExp('/action=manage/');
$result =
$shortcodes_object->process(array('[link:subscription_manage_url]'));
expect($result['0'])->regExp('/^http.*?action=manage/');
$result =
$shortcodes_object->process(array('[link:newsletter_view_in_browser]'));
expect($result['0'])->regExp('/^<a.*?\/a>$/');
expect($result['0'])->regExp('/endpoint=view_in_browser/');
$result =
$shortcodes_object->process(array('[link:newsletter_view_in_browser_url]'));
expect($result['0'])->regExp('/^http.*?endpoint=view_in_browser/');
@@ -243,19 +232,13 @@ class ShortcodesTest extends MailPoetTest {
expect($result['0'])->regExp('/^http.*?action=unsubscribe/');
Setting::setValue('tracking.enabled', true);
$initial_shortcodes = array(
'[link:subscription_unsubscribe]',
'[link:subscription_unsubscribe_url]',
'[link:subscription_manage]',
'[link:subscription_manage_url]',
'[link:newsletter_view_in_browser]',
'[link:newsletter_view_in_browser_url]'
);
$expected_transformed_shortcodes = array(
'[link:subscription_unsubscribe_url]',
'[link:subscription_unsubscribe_url]',
'[link:subscription_manage_url]',
'[link:subscription_manage_url]',
'[link:newsletter_view_in_browser_url]',
'[link:newsletter_view_in_browser_url]'
);
// tracking function only works during sending, so queue object must not be false
@@ -272,7 +255,7 @@ class ShortcodesTest extends MailPoetTest {
}
}
function testItReturnsHashInsteadofLinksWhenInPreviewIsEnabled() {
function testItReturnsHashInsteadofLinksWhenPreviewIsEnabled() {
$shortcodes_object = $this->shortcodes_object;
$shortcodes_object->wp_user_preview = true;
$shortcodes = array(
@@ -285,15 +268,6 @@ class ShortcodesTest extends MailPoetTest {
foreach($result as $index => $transformed_shortcode) {
expect($transformed_shortcode)->equals('#');
}
$shortcodes = array(
'[link:subscription_unsubscribe]',
'[link:subscription_manage]',
'[link:newsletter_view_in_browser]',
);
$result = $shortcodes_object->process($shortcodes);
foreach($result as $index => $transformed_shortcode) {
expect($transformed_shortcode)->regExp('/href="#"/');
}
}
function testItCanProcessCustomLinkShortcodes() {