Add post notification logging
[MAILPOET-1536]
This commit is contained in:
@ -4,6 +4,7 @@ namespace MailPoet\Cron\Workers;
|
||||
|
||||
use Carbon\Carbon;
|
||||
use MailPoet\Cron\CronHelper;
|
||||
use MailPoet\Logging\Logger;
|
||||
use MailPoet\Models\Newsletter;
|
||||
use MailPoet\Models\ScheduledTask;
|
||||
use MailPoet\Models\Segment;
|
||||
@ -75,9 +76,17 @@ class Scheduler {
|
||||
}
|
||||
|
||||
function processPostNotificationNewsletter($newsletter, $queue) {
|
||||
Logger::getLogger('post-notifications')->addInfo(
|
||||
'process post notification in scheduler',
|
||||
['newsletter_id' => $newsletter->id, 'task_id' => $queue->task_id]
|
||||
);
|
||||
// ensure that segments exist
|
||||
$segments = $newsletter->segments()->findArray();
|
||||
if(empty($segments)) {
|
||||
Logger::getLogger('post-notifications')->addInfo(
|
||||
'post notification no segments',
|
||||
['newsletter_id' => $newsletter->id, 'task_id' => $queue->task_id]
|
||||
);
|
||||
return $this->deleteQueueOrUpdateNextRunDate($queue, $newsletter);
|
||||
}
|
||||
|
||||
@ -87,6 +96,10 @@ class Scheduler {
|
||||
$subscribers_count = $finder->addSubscribersToTaskFromSegments($queue->task(), $segments);
|
||||
|
||||
if(empty($subscribers_count)) {
|
||||
Logger::getLogger('post-notifications')->addInfo(
|
||||
'post notification no subscribers',
|
||||
['newsletter_id' => $newsletter->id, 'task_id' => $queue->task_id]
|
||||
);
|
||||
return $this->deleteQueueOrUpdateNextRunDate($queue, $newsletter);
|
||||
}
|
||||
|
||||
@ -100,6 +113,10 @@ class Scheduler {
|
||||
$queue->save();
|
||||
// update notification status
|
||||
$notification_history->setStatus(Newsletter::STATUS_SENDING);
|
||||
Logger::getLogger('post-notifications')->addInfo(
|
||||
'post notification set status to sending',
|
||||
['newsletter_id' => $newsletter->id, 'task_id' => $queue->task_id]
|
||||
);
|
||||
return true;
|
||||
}
|
||||
|
||||
|
@ -5,6 +5,7 @@ use MailPoet\Cron\CronHelper;
|
||||
use MailPoet\Cron\Workers\SendingQueue\Tasks\Links;
|
||||
use MailPoet\Cron\Workers\SendingQueue\Tasks\Mailer as MailerTask;
|
||||
use MailPoet\Cron\Workers\SendingQueue\Tasks\Newsletter as NewsletterTask;
|
||||
use MailPoet\Logging\Logger;
|
||||
use MailPoet\Mailer\MailerError;
|
||||
use MailPoet\Mailer\MailerLog;
|
||||
use MailPoet\Models\ScheduledTask as ScheduledTaskModel;
|
||||
@ -48,6 +49,10 @@ class SendingQueue {
|
||||
// pre-process newsletter (render, replace shortcodes/links, etc.)
|
||||
$newsletter = $this->newsletter_task->preProcessNewsletter($newsletter, $queue);
|
||||
if(!$newsletter) {
|
||||
Logger::getLogger('newsletters')->addInfo(
|
||||
'delete task in sending queue',
|
||||
['newsletter_id' => $newsletter->id(), 'task_id' => $queue->task_id]
|
||||
);
|
||||
$queue->delete();
|
||||
continue;
|
||||
}
|
||||
|
@ -1,6 +1,7 @@
|
||||
<?php
|
||||
namespace MailPoet\Newsletter;
|
||||
|
||||
use MailPoet\Logging\Logger;
|
||||
use MailPoet\Newsletter\Editor\Transformer;
|
||||
|
||||
if(!defined('ABSPATH')) exit;
|
||||
@ -29,6 +30,10 @@ class AutomatedLatestContent {
|
||||
}
|
||||
|
||||
function getPosts($args, $posts_to_exclude = array()) {
|
||||
Logger::getLogger('post-notifications')->addInfo(
|
||||
'loading automated latest content',
|
||||
['args' => $args, 'posts_to_exclude' => $posts_to_exclude, 'newsletter_id' => $this->newsletter_id, 'newer_than_timestamp' => $this->newer_than_timestamp]
|
||||
);
|
||||
$posts_per_page = (!empty($args['amount']) && (int)$args['amount'] > 0)
|
||||
? (int)$args['amount']
|
||||
: self::DEFAULT_POSTS_PER_PAGE;
|
||||
@ -70,7 +75,14 @@ class AutomatedLatestContent {
|
||||
}
|
||||
|
||||
$this->_attachSentPostsFilter();
|
||||
|
||||
Logger::getLogger('post-notifications')->addInfo(
|
||||
'getting automated latest content',
|
||||
['parameters' => $parameters]
|
||||
);
|
||||
$posts = get_posts($parameters);
|
||||
$this->logPosts($posts);
|
||||
|
||||
$this->_detachSentPostsFilter();
|
||||
return $posts;
|
||||
}
|
||||
@ -126,4 +138,18 @@ class AutomatedLatestContent {
|
||||
remove_action('posts_where', array($this, 'filterOutSentPosts'));
|
||||
}
|
||||
}
|
||||
|
||||
private function logPosts(array $posts) {
|
||||
$posts_to_log = [];
|
||||
foreach($posts as $post) {
|
||||
$posts_to_log[] = [
|
||||
'id' => $post->ID,
|
||||
'post_date' => $post->post_date,
|
||||
];
|
||||
}
|
||||
Logger::getLogger('post-notifications')->addInfo(
|
||||
'automated latest content loaded posts',
|
||||
['posts' => $posts_to_log]
|
||||
);
|
||||
}
|
||||
}
|
||||
|
@ -3,6 +3,7 @@
|
||||
namespace MailPoet\Newsletter\Scheduler;
|
||||
|
||||
use Carbon\Carbon;
|
||||
use MailPoet\Logging\Logger;
|
||||
use MailPoet\Models\Newsletter;
|
||||
use MailPoet\Models\NewsletterOption;
|
||||
use MailPoet\Models\NewsletterOptionField;
|
||||
@ -23,6 +24,10 @@ class Scheduler {
|
||||
const INTERVAL_NTHWEEKDAY = 'nthWeekDay';
|
||||
|
||||
static function schedulePostNotification($post_id) {
|
||||
Logger::getLogger('post-notifications')->addInfo(
|
||||
'schedule post notification hook',
|
||||
['post_id' => $post_id]
|
||||
);
|
||||
$newsletters = self::getNewsletters(Newsletter::TYPE_NOTIFICATION);
|
||||
if(!count($newsletters)) return false;
|
||||
foreach($newsletters as $newsletter) {
|
||||
@ -143,6 +148,10 @@ class Scheduler {
|
||||
$sending_task->status = SendingQueue::STATUS_SCHEDULED;
|
||||
$sending_task->scheduled_at = $next_run_date;
|
||||
$sending_task->save();
|
||||
Logger::getLogger('post-notifications')->addInfo(
|
||||
'schedule post notification',
|
||||
['sending_task' => $sending_task->id(), 'scheduled_at' => $next_run_date]
|
||||
);
|
||||
return $sending_task;
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user