diff --git a/lib/Config/Shortcodes.php b/lib/Config/Shortcodes.php
index b7e2716eb4..3a3e8f7565 100644
--- a/lib/Config/Shortcodes.php
+++ b/lib/Config/Shortcodes.php
@@ -1,5 +1,8 @@
count();
+ } else {
+ return SubscriberSegment::whereIn('segment_id', $segment_ids)
+ ->select('subscriber_id')->distinct()
+ ->filter('subscribed')
+ ->findResultSet()->count();
+ }
+ }
+
+ function getArchive($params) {
+ 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();
+
+ if(empty($newsletters)) {
+ return apply_filters(
+ 'mailpoet_archive_no_newsletters',
+ __('Oops! There are no newsletters to display.')
+ );
+ } else {
+ $title = apply_filters('mailpoet_archive_title', '');
+ if(!empty($title)) {
+ $html .= '
'.$title.'
';
+ }
+
+ $html .= '';
+ foreach($newsletters as $newsletter) {
+ $html .= '- '.
+ ''.
+ apply_filters('mailpoet_archive_date', $newsletter).
+ '
+ '.
+ apply_filters('mailpoet_archive_subject', $newsletter).
+ '
+
';
+ }
+ $html .= '
';
+ }
+ return $html;
+ }
+
+ function renderArchiveDate($newsletter) {
+ return date_i18n(
+ get_option('date_format'),
+ strtotime($newsletter->created_at)
+ );
+ }
+
+ function renderArchiveSubject($newsletter) {
+ return ''
+ .esc_attr($newsletter->subject).
+ '';
+ }
+
}
\ No newline at end of file
diff --git a/lib/Config/Widget.php b/lib/Config/Widget.php
index eeb17ddf29..cb24a7980d 100644
--- a/lib/Config/Widget.php
+++ b/lib/Config/Widget.php
@@ -1,6 +1,5 @@
count();
}
function setupDependencies() {
diff --git a/lib/Models/SubscriberSegment.php b/lib/Models/SubscriberSegment.php
index 7f2a435239..c538c23602 100644
--- a/lib/Models/SubscriberSegment.php
+++ b/lib/Models/SubscriberSegment.php
@@ -33,6 +33,10 @@ class SubscriberSegment extends Model {
return $orm;
}
+ static function subscribed($orm) {
+ return $orm->where('status', 'subscribed');
+ }
+
static function createMultiple($segmnets, $subscribers) {
$values = Helpers::flattenArray(
array_map(function ($segment) use ($subscribers) {
diff --git a/views/settings/basics.html b/views/settings/basics.html
index e40d98b35f..5b3dfdb5a9 100644
--- a/views/settings/basics.html
+++ b/views/settings/basics.html
@@ -347,7 +347,7 @@
values = $(this).val() || [];
if (values.length > 0) {
- shortcode += ' list_id="';
+ shortcode += ' segments="';
shortcode += values.join(',');
shortcode += '"';
}