Fix stats redirect
When an unauthenticated user comes to any page they are redirected to login screen. After they authenticate they are redirected to the original page. But the # part of the url is ignored. So we have to use regular query params from the email and redirect user to the canonical URL later. [MAILPOET-2554]
This commit is contained in:
committed by
Jack Kitterhing
parent
8e38925850
commit
3b9ba5cac2
@ -75,6 +75,15 @@ class Newsletters {
|
||||
public function render() {
|
||||
global $wp_roles; // phpcs:ignore Squiz.NamingConventions.ValidVariableName.NotCamelCaps
|
||||
|
||||
if (isset($_GET['stats'])) {
|
||||
$this->wp->wpSafeRedirect(
|
||||
$this->wp->getSiteUrl(null,
|
||||
'/wp-admin/admin.php?page=mailpoet-newsletters#/stats/' . $_GET['stats']
|
||||
)
|
||||
);
|
||||
exit;
|
||||
}
|
||||
|
||||
$data = [];
|
||||
|
||||
$data['items_per_page'] = $this->listingPageLimit->getLimitPerPage('newsletters');
|
||||
|
@ -139,7 +139,7 @@ class Worker {
|
||||
),
|
||||
'topLinkClicks' => 0,
|
||||
'linkSettings' => WPFunctions::get()->getSiteUrl(null, '/wp-admin/admin.php?page=mailpoet-settings#basics'),
|
||||
'linkStats' => WPFunctions::get()->getSiteUrl(null, '/wp-admin/admin.php?page=mailpoet-newsletters#/stats/' . $newsletter->getId()),
|
||||
'linkStats' => WPFunctions::get()->getSiteUrl(null, '/wp-admin/admin.php?page=mailpoet-newsletters&stats=' . $newsletter->getId()),
|
||||
'clicked' => $clicked,
|
||||
'opened' => $opened,
|
||||
'subscribersLimitReached' => $this->subscribersFeature->check(),
|
||||
|
@ -209,7 +209,7 @@ class WorkerTest extends \MailPoetTest {
|
||||
$this->anything(),
|
||||
$this->callback(function($context){
|
||||
return strpos($context['linkSettings'], 'mailpoet-settings')
|
||||
&& strpos($context['linkStats'], 'mailpoet-newsletters#/stats');
|
||||
&& strpos($context['linkStats'], 'mailpoet-newsletters&stats');
|
||||
}));
|
||||
|
||||
$this->statsNotifications->process();
|
||||
|
Reference in New Issue
Block a user