Use proper check for existence
[MAILPOET-2535]
This commit is contained in:
committed by
Jack Kitterhing
parent
f1da8e5c36
commit
650f9a8c90
@@ -36,7 +36,7 @@ class WooCommercePastOrders extends SimpleWorker {
|
|||||||
|
|
||||||
function processTaskStrategy(ScheduledTask $task) {
|
function processTaskStrategy(ScheduledTask $task) {
|
||||||
$oldest_click = StatisticsClicks::orderByAsc('created_at')->limit(1)->findOne();
|
$oldest_click = StatisticsClicks::orderByAsc('created_at')->limit(1)->findOne();
|
||||||
if (!$oldest_click) {
|
if (!$oldest_click instanceof StatisticsClicks) {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -775,7 +775,7 @@ class Newsletter extends Model {
|
|||||||
foreach ($data['filter'] as $key => $value) {
|
foreach ($data['filter'] as $key => $value) {
|
||||||
if ($key === 'segment') {
|
if ($key === 'segment') {
|
||||||
$segment = Segment::findOne($value);
|
$segment = Segment::findOne($value);
|
||||||
if ($segment !== false) {
|
if ($segment instanceof Segment) {
|
||||||
$orm = $segment->newsletters();
|
$orm = $segment->newsletters();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1149,7 +1149,7 @@ class Newsletter extends Model {
|
|||||||
|
|
||||||
static function findOneWithOptions($id) {
|
static function findOneWithOptions($id) {
|
||||||
$newsletter = self::findOne($id);
|
$newsletter = self::findOne($id);
|
||||||
if ($newsletter === false) {
|
if (!$newsletter instanceof self) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
return self::filter('filterWithOptions', $newsletter->type)->findOne($id);
|
return self::filter('filterWithOptions', $newsletter->type)->findOne($id);
|
||||||
|
@@ -20,7 +20,7 @@ class StatisticsClicks extends Model {
|
|||||||
->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 instanceof self) {
|
||||||
$statistics = self::create();
|
$statistics = self::create();
|
||||||
$statistics->link_id = $link_id;
|
$statistics->link_id = $link_id;
|
||||||
$statistics->subscriber_id = $subscriber_id;
|
$statistics->subscriber_id = $subscriber_id;
|
||||||
|
@@ -15,7 +15,9 @@ class Subscriber {
|
|||||||
$newsletter,
|
$newsletter,
|
||||||
$subscriber
|
$subscriber
|
||||||
) {
|
) {
|
||||||
if ($subscriber !== false && !is_object($subscriber)) return $shortcode_details['shortcode'];
|
if ($subscriber !== false && !($subscriber instanceof SubscriberModel)) {
|
||||||
|
return $shortcode_details['shortcode'];
|
||||||
|
}
|
||||||
$default_value = ($shortcode_details['action_argument'] === 'default') ?
|
$default_value = ($shortcode_details['action_argument'] === 'default') ?
|
||||||
$shortcode_details['action_argument_value'] :
|
$shortcode_details['action_argument_value'] :
|
||||||
'';
|
'';
|
||||||
@@ -43,7 +45,7 @@ class Subscriber {
|
|||||||
::where('subscriber_id', $subscriber->id)
|
::where('subscriber_id', $subscriber->id)
|
||||||
->where('custom_field_id', $custom_field[1])
|
->where('custom_field_id', $custom_field[1])
|
||||||
->findOne();
|
->findOne();
|
||||||
return ($custom_field) ? $custom_field->value : false;
|
return ($custom_field instanceof SubscriberCustomField) ? $custom_field->value : false;
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
@@ -58,7 +58,7 @@ class Track {
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
$data->queue = SendingQueue::findOne($data->queue_id);
|
$data->queue = SendingQueue::findOne($data->queue_id);
|
||||||
if ($data->queue) {
|
if ($data->queue instanceof SendingQueue) {
|
||||||
$data->queue = SendingTask::createFromQueue($data->queue);
|
$data->queue = SendingTask::createFromQueue($data->queue);
|
||||||
}
|
}
|
||||||
$data->subscriber = Subscriber::findOne($data->subscriber_id) ?: null;
|
$data->subscriber = Subscriber::findOne($data->subscriber_id) ?: null;
|
||||||
|
@@ -105,7 +105,7 @@ class ViewInBrowser {
|
|||||||
) return false;
|
) return false;
|
||||||
|
|
||||||
// if queue and subscriber exist, subscriber must have received the newsletter
|
// if queue and subscriber exist, subscriber must have received the newsletter
|
||||||
if ($data->queue &&
|
if ($data->queue instanceof SendingQueue &&
|
||||||
$data->subscriber &&
|
$data->subscriber &&
|
||||||
!$data->queue->isSubscriberProcessed($data->subscriber->id)
|
!$data->queue->isSubscriberProcessed($data->subscriber->id)
|
||||||
) return false;
|
) return false;
|
||||||
|
@@ -5,6 +5,7 @@ namespace MailPoet\Test\Cron\Workers\SendingQueue\Tasks;
|
|||||||
use MailPoet\Cron\Workers\SendingQueue\Tasks\Shortcodes;
|
use MailPoet\Cron\Workers\SendingQueue\Tasks\Shortcodes;
|
||||||
use MailPoet\Models\Newsletter;
|
use MailPoet\Models\Newsletter;
|
||||||
use MailPoet\Models\SendingQueue;
|
use MailPoet\Models\SendingQueue;
|
||||||
|
use MailPoet\Models\Subscriber;
|
||||||
|
|
||||||
class ShortcodesTest extends \MailPoetTest {
|
class ShortcodesTest extends \MailPoetTest {
|
||||||
function _before() {
|
function _before() {
|
||||||
@@ -22,11 +23,12 @@ class ShortcodesTest extends \MailPoetTest {
|
|||||||
$queue = $newsletter = (object)[
|
$queue = $newsletter = (object)[
|
||||||
'id' => 1,
|
'id' => 1,
|
||||||
];
|
];
|
||||||
$subscriber = (object)[
|
$subscriber = Subscriber::create();
|
||||||
|
$subscriber->hydrate([
|
||||||
'email' => 'test@xample. com',
|
'email' => 'test@xample. com',
|
||||||
'first_name' => 'John',
|
'first_name' => 'John',
|
||||||
'last_name' => 'Doe',
|
'last_name' => 'Doe',
|
||||||
];
|
]);
|
||||||
$rendered_body = '[subscriber:firstname] [subscriber:lastname]';
|
$rendered_body = '[subscriber:firstname] [subscriber:lastname]';
|
||||||
$result = Shortcodes::process($rendered_body, null, $newsletter, $subscriber, $queue);
|
$result = Shortcodes::process($rendered_body, null, $newsletter, $subscriber, $queue);
|
||||||
expect($result)->equals('John Doe');
|
expect($result)->equals('John Doe');
|
||||||
|
Reference in New Issue
Block a user