Remove 'type' parameter for view-in-browser, always include hash
[MAILPOET-2430]
This commit is contained in:
committed by
Jack Kitterhing
parent
eb1c7673e3
commit
e5fcf5819d
@ -124,7 +124,6 @@ class Newsletters extends APIEndpoint {
|
||||
NewslettersResponseBuilder::RELATION_QUEUE,
|
||||
]);
|
||||
$previewUrl = NewsletterUrl::getViewInBrowserUrl(
|
||||
NewsletterUrl::TYPE_LISTING_EDITOR,
|
||||
(object)[
|
||||
'id' => $newsletter->getId(),
|
||||
'hash' => $newsletter->getHash(),
|
||||
@ -155,7 +154,6 @@ class Newsletters extends APIEndpoint {
|
||||
]);
|
||||
$response = $this->wp->applyFilters('mailpoet_api_newsletters_get_after', $response);
|
||||
$response['preview_url'] = NewsletterUrl::getViewInBrowserUrl(
|
||||
NewsletterUrl::TYPE_LISTING_EDITOR,
|
||||
(object)[
|
||||
'id' => $newsletter->getId(),
|
||||
'hash' => $newsletter->getHash(),
|
||||
@ -283,12 +281,7 @@ class Newsletters extends APIEndpoint {
|
||||
$this->wp->doAction('mailpoet_api_newsletters_save_after', $newsletter);
|
||||
$this->authorizedEmailsController->onNewsletterUpdate($newsletter, $oldNewsletter);
|
||||
|
||||
$previewUrl = NewsletterUrl::getViewInBrowserUrl(
|
||||
NewsletterUrl::TYPE_LISTING_EDITOR,
|
||||
$newsletter,
|
||||
Subscriber::getCurrentWPUser()
|
||||
);
|
||||
|
||||
$previewUrl = NewsletterUrl::getViewInBrowserUrl($newsletter, Subscriber::getCurrentWPUser());
|
||||
return $this->successResponse($newsletter->asArray(), ['preview_url' => $previewUrl]);
|
||||
}
|
||||
|
||||
@ -441,11 +434,7 @@ class Newsletters extends APIEndpoint {
|
||||
$newsletter->body = $this->emoji->encodeForUTF8Column(MP_NEWSLETTERS_TABLE, 'body', $newsletter->body);
|
||||
$newsletter->save();
|
||||
$subscriber = Subscriber::getCurrentWPUser();
|
||||
$previewUrl = NewsletterUrl::getViewInBrowserUrl(
|
||||
NewsletterUrl::TYPE_LISTING_EDITOR,
|
||||
$newsletter,
|
||||
$subscriber
|
||||
);
|
||||
$previewUrl = NewsletterUrl::getViewInBrowserUrl($newsletter, $subscriber);
|
||||
$publicPreviewUrl = NewsletterUrl::getViewInBrowserUrl($newsletter);
|
||||
// strip protocol to avoid mix content error
|
||||
$previewUrl = preg_replace('{^https?:}i', '', $previewUrl);
|
||||
@ -575,12 +564,7 @@ class Newsletters extends APIEndpoint {
|
||||
}
|
||||
|
||||
// get preview url
|
||||
$newsletter->previewUrl = NewsletterUrl::getViewInBrowserUrl(
|
||||
NewsletterUrl::TYPE_LISTING_EDITOR,
|
||||
$newsletter,
|
||||
$subscriber = null,
|
||||
$queue
|
||||
);
|
||||
$newsletter->previewUrl = NewsletterUrl::getViewInBrowserUrl($newsletter, $subscriber = null, $queue);
|
||||
|
||||
$data[] = $this->wp->applyFilters('mailpoet_api_newsletters_listing_item', $newsletter->asArray());
|
||||
}
|
||||
|
@ -132,12 +132,7 @@ class Shortcodes {
|
||||
}
|
||||
|
||||
public function renderArchiveSubject($newsletter, $subscriber, $queue) {
|
||||
$previewUrl = NewsletterUrl::getViewInBrowserUrl(
|
||||
NewsletterUrl::TYPE_ARCHIVE,
|
||||
$newsletter,
|
||||
$subscriber,
|
||||
$queue
|
||||
);
|
||||
$previewUrl = NewsletterUrl::getViewInBrowserUrl($newsletter, $subscriber, $queue);
|
||||
return '<a href="' . esc_attr($previewUrl) . '" target="_blank" title="'
|
||||
. esc_attr(__('Preview in a new tab', 'mailpoet')) . '">'
|
||||
. esc_attr($newsletter->newsletterRenderedSubject) .
|
||||
|
@ -39,7 +39,6 @@ class Link {
|
||||
|
||||
case 'newsletter_view_in_browser_url':
|
||||
$url = NewsletterUrl::getViewInBrowserUrl(
|
||||
$type = null,
|
||||
$newsletter,
|
||||
$wpUserPreview ? false : $subscriber,
|
||||
$queue,
|
||||
@ -90,7 +89,6 @@ class Link {
|
||||
break;
|
||||
case 'newsletter_view_in_browser_url':
|
||||
$url = NewsletterUrl::getViewInBrowserUrl(
|
||||
$type = null,
|
||||
$newsletter,
|
||||
$subscriber,
|
||||
$queue,
|
||||
|
@ -8,11 +8,7 @@ use MailPoet\Router\Router;
|
||||
use MailPoet\Subscribers\LinkTokens;
|
||||
|
||||
class Url {
|
||||
const TYPE_ARCHIVE = 'display_archive';
|
||||
const TYPE_LISTING_EDITOR = 'display_listing_editor';
|
||||
|
||||
public static function getViewInBrowserUrl(
|
||||
$type,
|
||||
$newsletter,
|
||||
$subscriber = false,
|
||||
$queue = false,
|
||||
@ -22,16 +18,6 @@ class Url {
|
||||
if ($subscriber instanceof SubscriberModel) {
|
||||
$subscriber->token = $linkTokens->getToken($subscriber);
|
||||
}
|
||||
switch ($type) {
|
||||
case self::TYPE_ARCHIVE:
|
||||
// do not expose newsletter id when displaying archive newsletters
|
||||
$newsletter->id = null;
|
||||
break;
|
||||
default:
|
||||
// hide hash for all other display types
|
||||
$newsletter->hash = null;
|
||||
break;
|
||||
}
|
||||
$data = self::createUrlDataObject($newsletter, $subscriber, $queue, $preview);
|
||||
return Router::buildRequest(
|
||||
ViewInBrowserEndpoint::ENDPOINT,
|
||||
|
@ -68,7 +68,6 @@ class NewslettersExporter {
|
||||
$newsletterData[] = [
|
||||
'name' => WPFunctions::get()->__('Email preview', 'mailpoet'),
|
||||
'value' => Url::getViewInBrowserUrl(
|
||||
'',
|
||||
$newsletters[$statisticsRow['newsletter_id']],
|
||||
$subscriber,
|
||||
false
|
||||
|
@ -91,7 +91,6 @@ class State
|
||||
'queue_id' => (int)$queue->id,
|
||||
'subject' => $queue->newsletterRenderedSubject ?: $newsletter->subject,
|
||||
'preview_url' => NewsletterUrl::getViewInBrowserUrl(
|
||||
NewsletterUrl::TYPE_LISTING_EDITOR,
|
||||
$newsletter,
|
||||
null,
|
||||
$queue
|
||||
|
@ -873,7 +873,7 @@ class NewslettersTest extends \MailPoetTest {
|
||||
'send' => function ($newsletter, $subscriber, $extraParams) {
|
||||
$unsubscribeLink = $this->subscriptionUrlFactory->getUnsubscribeUrl(null);
|
||||
$manageLink = $this->subscriptionUrlFactory->getManageUrl(null);
|
||||
$viewInBrowserLink = Url::getViewInBrowserUrl(null, $this->newsletter, false, false);
|
||||
$viewInBrowserLink = Url::getViewInBrowserUrl($this->newsletter, false, false);
|
||||
$mailerMetaInfo = new MetaInfo;
|
||||
|
||||
expect(is_array($newsletter))->true();
|
||||
|
@ -52,13 +52,11 @@ class ShortcodesTest extends \MailPoetTest {
|
||||
/** @var string $link */
|
||||
$link = $link->attr('href');
|
||||
expect($link)->contains('endpoint=view_in_browser');
|
||||
// request data object contains newsletter hash but not newsletter id
|
||||
$parsedLink = parse_url($link, PHP_URL_QUERY);
|
||||
parse_str(html_entity_decode((string)$parsedLink), $data);
|
||||
$requestData = Url::transformUrlDataObject(
|
||||
Router::decodeRequestData($data['data'])
|
||||
);
|
||||
expect($requestData['newsletter_id'])->isEmpty();
|
||||
expect($requestData['newsletter_hash'])->equals($this->newsletter->hash);
|
||||
}
|
||||
|
||||
|
@ -309,7 +309,7 @@ class ShortcodesTest extends \MailPoetTest {
|
||||
$links = [
|
||||
$this->subscriptionUrlFactory->getUnsubscribeUrl(null),
|
||||
$this->subscriptionUrlFactory->getManageUrl(null),
|
||||
NewsletterUrl::getViewInBrowserUrl(null, $this->newsletter, false, false),
|
||||
NewsletterUrl::getViewInBrowserUrl($this->newsletter, false, false),
|
||||
];
|
||||
$result = $shortcodesObject->process($shortcodes);
|
||||
// hash is returned
|
||||
|
Reference in New Issue
Block a user