Manage subscriptions
- make use of the SubscriberSegment::status column to keep track of unsubscriptions - unsubscribed segments now appear grayed out in the Subscribers listing - added unsubscribed_at after segment names when editing a subscriber - added date() method for Twig (uses WP's date format / date_offset) - fixed typo in Form iframe export - fixed unit test for Newsletters - updated selection component (JSX) to allow more customization
This commit is contained in:
@ -38,15 +38,6 @@ class Segment extends Model {
|
||||
);
|
||||
}
|
||||
|
||||
function segmentFilters() {
|
||||
return $this->has_many_through(
|
||||
__NAMESPACE__.'\Filter',
|
||||
__NAMESPACE__.'\SegmentFilter',
|
||||
'segment_id',
|
||||
'filter_id'
|
||||
);
|
||||
}
|
||||
|
||||
function duplicate($data = array()) {
|
||||
$duplicate = parent::duplicate($data);
|
||||
|
||||
@ -76,6 +67,32 @@ class Segment extends Model {
|
||||
->delete();
|
||||
}
|
||||
|
||||
function withSubscribersCount() {
|
||||
$this->subscribers_count = SubscriberSegment::table_alias('relation')
|
||||
->where('relation.segment_id', $this->id)
|
||||
->join(
|
||||
MP_SUBSCRIBERS_TABLE,
|
||||
'subscribers.id = relation.subscriber_id',
|
||||
'subscribers'
|
||||
)
|
||||
->select_expr(
|
||||
'SUM(CASE subscribers.status WHEN "subscribed" THEN 1 ELSE 0 END)',
|
||||
'subscribed'
|
||||
)
|
||||
->select_expr(
|
||||
'SUM(CASE subscribers.status WHEN "unsubscribed" THEN 1 ELSE 0 END)',
|
||||
'unsubscribed'
|
||||
)
|
||||
->select_expr(
|
||||
'SUM(CASE subscribers.status WHEN "unconfirmed" THEN 1 ELSE 0 END)',
|
||||
'unconfirmed'
|
||||
)
|
||||
->findOne()
|
||||
->asArray();
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
static function getWPUsers() {
|
||||
return self::where('type', 'wp_users')->findOne();
|
||||
}
|
||||
|
Reference in New Issue
Block a user