Add woocommerce properties to mixpanel reporter

[MAILPOET-1821]
This commit is contained in:
Pavel Dohnal
2019-03-19 15:45:24 +01:00
committed by M. Shull
parent 8b4bf19bdd
commit e660541b5b
2 changed files with 45 additions and 20 deletions

View File

@@ -626,6 +626,9 @@ class Newsletter extends Model {
->filter('filterStatus', self::STATUS_SENT)
->count();
$first_purchase_emails_count = self::getActiveAutomaticNewslettersCount('woocommerce_first_purchase');
$product_purchased_emails_count = self::getActiveAutomaticNewslettersCount('woocommerce_product_purchased');
$sent_newsletters_3_months = self::sentAfter(Carbon::now()->subMonths(3));
$sent_newsletters_30_days = self::sentAfter(Carbon::now()->subDays(30));
@@ -636,9 +639,31 @@ class Newsletter extends Model {
'sent_newsletters_count' => $newsletters_count,
'sent_newsletters_3_months' => $sent_newsletters_3_months,
'sent_newsletters_30_days' => $sent_newsletters_30_days,
'first_purchase_emails_count' => $first_purchase_emails_count,
'product_purchased_emails_count' => $product_purchased_emails_count,
);
}
private static function getActiveAutomaticNewslettersCount($event_name) {
return NewsletterOption::tableAlias('options')
->join(
self::$_table,
'newsletters.id = options.newsletter_id',
'newsletters'
)
->join(
MP_NEWSLETTER_OPTION_FIELDS_TABLE,
'option_fields.id = options.option_field_id',
'option_fields'
)
->whereNull('newsletters.deleted_at')
->where('newsletters.type', self::TYPE_AUTOMATIC)
->where('newsletters.status', self::STATUS_ACTIVE)
->where('option_fields.name', 'event')
->where('options.value', $event_name)
->count();
}
static function sentAfter($date) {
return static::tableAlias('newsletters')
->where('newsletters.type', self::TYPE_STANDARD)