Added Newsletter::getArchives() in order to return proper archives
- Archives page: replaced created_at by processed_at as the issue date
This commit is contained in:
@@ -67,17 +67,16 @@ class Shortcodes {
|
||||
}
|
||||
|
||||
function getArchive($params) {
|
||||
$segment_ids = array();
|
||||
if(!empty($params['segments'])) {
|
||||
$segment_ids = array_map(function($segment_id) {
|
||||
return (int)trim($segment_id);
|
||||
}, explode(',', $params['segments']));
|
||||
}
|
||||
|
||||
$newsletters = array();
|
||||
$html = '';
|
||||
|
||||
// TODO: needs more advanced newsletters in order to finish
|
||||
$newsletters = Newsletter::limit(10)->orderByDesc('created_at')->findMany();
|
||||
$newsletters = Newsletter::getArchives($segment_ids);
|
||||
|
||||
if(empty($newsletters)) {
|
||||
return apply_filters(
|
||||
@@ -109,7 +108,7 @@ class Shortcodes {
|
||||
function renderArchiveDate($newsletter) {
|
||||
return date_i18n(
|
||||
get_option('date_format'),
|
||||
strtotime($newsletter->created_at)
|
||||
strtotime($newsletter->processed_at)
|
||||
);
|
||||
}
|
||||
|
||||
|
@@ -611,4 +611,31 @@ class Newsletter extends Model {
|
||||
->whereIn('options.value', $segments)
|
||||
->findMany();
|
||||
}
|
||||
|
||||
static function getArchives($segment_ids = array()) {
|
||||
$orm = self::table_alias('newsletters')
|
||||
->distinct()->select('newsletters.*')
|
||||
->whereIn('newsletters.type', array(
|
||||
self::TYPE_STANDARD,
|
||||
self::TYPE_NOTIFICATION_HISTORY
|
||||
))
|
||||
->join(
|
||||
MP_SENDING_QUEUES_TABLE,
|
||||
'queues.newsletter_id = newsletters.id',
|
||||
'queues'
|
||||
)
|
||||
->where('queues.status', SendingQueue::STATUS_COMPLETED)
|
||||
->select('queues.processed_at')
|
||||
->orderByDesc('queues.processed_at');
|
||||
|
||||
if(!empty($segment_ids)) {
|
||||
$orm->join(
|
||||
MP_NEWSLETTER_SEGMENT_TABLE,
|
||||
'newsletter_segments.newsletter_id = newsletters.id',
|
||||
'newsletter_segments'
|
||||
)
|
||||
->whereIn('newsletter_segments.segment_id', $segment_ids);
|
||||
}
|
||||
return $orm->findMany();
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user