diff --git a/lib/Models/NewsletterLink.php b/lib/Models/NewsletterLink.php index 661858455a..fc0c8828f2 100644 --- a/lib/Models/NewsletterLink.php +++ b/lib/Models/NewsletterLink.php @@ -5,4 +5,9 @@ if(!defined('ABSPATH')) exit; class NewsletterLink extends Model { public static $_table = MP_NEWSLETTER_LINKS_TABLE; + + static function getByHash($hash) { + return parent::where('hash', $hash) + ->findOne(); + } } diff --git a/lib/Models/SendingQueue.php b/lib/Models/SendingQueue.php index 6b5732a2c8..eab387d0f3 100644 --- a/lib/Models/SendingQueue.php +++ b/lib/Models/SendingQueue.php @@ -59,6 +59,15 @@ class SendingQueue extends Model { return $subscribers; } + function getRenderedNewsletterBody() { + return json_decode($this->newsletter_rendered_body, true); + } + + function isSubscriberProcessed($subscriber_id) { + $subscribers = $this->getSubscribers(); + return in_array($subscriber_id, $subscribers['processed']); + } + function asArray() { $model = parent::asArray(); $model['subscribers'] = (is_serialized($this->subscribers)) diff --git a/lib/Models/StatisticsClicks.php b/lib/Models/StatisticsClicks.php index e7b2c8a853..58534efac0 100644 --- a/lib/Models/StatisticsClicks.php +++ b/lib/Models/StatisticsClicks.php @@ -5,4 +5,23 @@ if(!defined('ABSPATH')) exit; class StatisticsClicks extends Model { public static $_table = MP_STATISTICS_CLICKS_TABLE; + + static function createOrUpdateClickCount($link_id, $subscriber_id, $newsletter_id, $queue_id) { + $statistics = self::where('link_id', $link_id) + ->where('subscriber_id', $subscriber_id) + ->where('newsletter_id', $newsletter_id) + ->where('queue_id', $queue_id) + ->findOne(); + if(!$statistics) { + $statistics = self::create(); + $statistics->link_id = $link_id; + $statistics->subscriber_id = $subscriber_id; + $statistics->newsletter_id = $newsletter_id; + $statistics->queue_id = $queue_id; + $statistics->count = 1; + } else { + $statistics->count++; + } + return $statistics->save(); + } } diff --git a/lib/Models/StatisticsOpens.php b/lib/Models/StatisticsOpens.php index bc4e0cad23..3ab3d36fd4 100644 --- a/lib/Models/StatisticsOpens.php +++ b/lib/Models/StatisticsOpens.php @@ -5,4 +5,19 @@ if(!defined('ABSPATH')) exit; class StatisticsOpens extends Model { public static $_table = MP_STATISTICS_OPENS_TABLE; + + static function getOrCreate($subscriber_id, $newsletter_id, $queue_id) { + $statistics = self::where('subscriber_id', $subscriber_id) + ->where('newsletter_id', $newsletter_id) + ->where('queue_id', $queue_id) + ->findOne(); + if(!$statistics) { + $statistics = self::create(); + $statistics->subscriber_id = $subscriber_id; + $statistics->newsletter_id = $newsletter_id; + $statistics->queue_id = $queue_id; + $statistics->save(); + } + return $statistics; + } }