diff --git a/assets/js/src/newsletters/campaign_stats/page.jsx b/assets/js/src/newsletters/campaign_stats/page.jsx index 14a71f3f94..d05a915f12 100644 --- a/assets/js/src/newsletters/campaign_stats/page.jsx +++ b/assets/js/src/newsletters/campaign_stats/page.jsx @@ -73,8 +73,8 @@ class CampaignStatsPage extends React.Component { MailPoet.Ajax.post({ api_version: window.mailpoet_api_version, - endpoint: 'stats', - action: 'get', + endpoint: window.mailpoet_premium_active ? 'stats' : 'newsletters', + action: window.mailpoet_premium_active ? 'get' : 'getWithStats', data: { id, }, diff --git a/lib/API/JSON/v1/Newsletters.php b/lib/API/JSON/v1/Newsletters.php index 495770226e..75b6245239 100644 --- a/lib/API/JSON/v1/Newsletters.php +++ b/lib/API/JSON/v1/Newsletters.php @@ -97,6 +97,32 @@ class Newsletters extends APIEndpoint { } } + function getWithStats($data = []) { + $id = (isset($data['id']) ? (int)$data['id'] : false); + $newsletter = Newsletter::findOne($id); + if ($newsletter instanceof Newsletter) { + $newsletter = $newsletter + ->withSegments() + ->withOptions() + ->withSendingQueue() + ->withTotalSent() + ->withStatistics($this->woocommerce_helper, $this->features_controller); + + $preview_url = NewsletterUrl::getViewInBrowserUrl( + NewsletterUrl::TYPE_LISTING_EDITOR, + $newsletter, + Subscriber::getCurrentWPUser() + ); + + $newsletter = $this->wp->applyFilters('mailpoet_api_newsletters_get_after', $newsletter->asArray()); + return $this->successResponse($newsletter, ['preview_url' => $preview_url]); + } else { + return $this->errorResponse([ + APIError::NOT_FOUND => WPFunctions::get()->__('This email does not exist.', 'mailpoet'), + ]); + } + } + function save($data = []) { $data = $this->wp->applyFilters('mailpoet_api_newsletters_save_before', $data);