Mixpanel analytics [MAILPOET-686] (#940)

* Send analytics data to mixpanel

[MAILPOET-686]
This commit is contained in:
pavel-mailpoet
2017-06-20 10:20:50 +01:00
committed by stoletniy
parent 823cd3cd07
commit 812c6634ba
18 changed files with 413 additions and 88 deletions

View File

@@ -1,5 +1,6 @@
<?php
namespace MailPoet\Models;
use Carbon\Carbon;
use MailPoet\Newsletter\Renderer\Renderer;
use MailPoet\Util\Helpers;
use MailPoet\Util\Security;
@@ -492,6 +493,37 @@ class Newsletter extends Model {
);
}
static function getAnalytics() {
$welcome_newsletters_count = Newsletter::getPublished()
->filter('filterType', self::TYPE_WELCOME)
->filter('filterStatus', self::STATUS_ACTIVE)
->count();
$notifications_count = Newsletter::getPublished()
->filter('filterType', self::TYPE_NOTIFICATION)
->filter('filterStatus', self::STATUS_ACTIVE)
->count();
$sent_newsletters = static::table_alias('newsletters')
->where('newsletters.type', self::TYPE_STANDARD)
->where('newsletters.status', self::STATUS_SENT)
->join(
MP_SENDING_QUEUES_TABLE,
'queues.newsletter_id = newsletters.id',
'queues'
)
->where('queues.status', SendingQueue::STATUS_COMPLETED)
->whereGte('queues.processed_at', Carbon::now()->subMonths(3))
->count();
return array(
'welcome_newsletters_count' => $welcome_newsletters_count,
'notifications_count' => $notifications_count,
'sent_newsletters' => $sent_newsletters,
);
}
static function search($orm, $search = '') {
if(strlen(trim($search)) > 0) {
$orm->whereLike('subject', '%' . $search . '%');