Use newsletters API to get free statistics when premium is not active

[MAILPOET-2104]
This commit is contained in:
Ján Mikláš
2019-06-25 10:03:07 +02:00
committed by M. Shull
parent 50d9ff7686
commit 6a6299177f
2 changed files with 28 additions and 2 deletions

View File

@ -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,
},

View File

@ -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);