- Enables newsletter open tracking when links are clicked

This commit is contained in:
Vlad
2016-04-19 20:59:49 -04:00
parent 45b933d635
commit 11b22fa63a

View File

@ -5,11 +5,10 @@ use MailPoet\Models\NewsletterLink;
use MailPoet\Models\StatisticsClicks; use MailPoet\Models\StatisticsClicks;
use MailPoet\Models\Subscriber; use MailPoet\Models\Subscriber;
use MailPoet\Subscription\Url as SubscriptionUrl; use MailPoet\Subscription\Url as SubscriptionUrl;
use MailPoet\Util\Helpers;
if(!defined('ABSPATH')) exit; if(!defined('ABSPATH')) exit;
class Click { class Clicks {
public $url; public $url;
function __construct($url) { function __construct($url) {
@ -23,13 +22,17 @@ class Click {
$subscriber = Subscriber::findOne($subscriber_id); $subscriber = Subscriber::findOne($subscriber_id);
$link = NewsletterLink::where('hash', $hash) $link = NewsletterLink::where('hash', $hash)
->findOne(); ->findOne();
if(!$link || !$subscriber) $this->abort(); if(!$subscriber) return;
if(!$link) $this->abort();
$statistics = StatisticsClicks::where('link_id', $link->id) $statistics = StatisticsClicks::where('link_id', $link->id)
->where('subscriber_id', $subscriber_id) ->where('subscriber_id', $subscriber_id)
->where('newsletter_id', $newsletter_id) ->where('newsletter_id', $newsletter_id)
->where('queue_id', $queue_id) ->where('queue_id', $queue_id)
->findOne(); ->findOne();
if(!$statistics) { if(!$statistics) {
// track open action in case it did not register
$opens = new Opens($url);
$opens->track();
$statistics = StatisticsClicks::create(); $statistics = StatisticsClicks::create();
$statistics->newsletter_id = $newsletter_id; $statistics->newsletter_id = $newsletter_id;
$statistics->link_id = $link->id; $statistics->link_id = $link->id;