Add per-subscriber cancel functionality for automatic emails
[PREMIUM-121]
This commit is contained in:
@@ -123,6 +123,27 @@ class Scheduler {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static function cancelAutomaticEmail($group, $event, $subscriber_id) {
|
||||||
|
$newsletters = self::getNewsletters(Newsletter::TYPE_AUTOMATIC, $group);
|
||||||
|
if (empty($newsletters)) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
foreach ($newsletters as $newsletter) {
|
||||||
|
if ($newsletter->event !== $event) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
// try to find existing scheduled task for given subscriber
|
||||||
|
$task = ScheduledTask::findOneScheduledByNewsletterIdAndSubscriberId($newsletter->id, $subscriber_id);
|
||||||
|
if ($task) {
|
||||||
|
SendingQueue::where('task_id', $task->id)->deleteMany();
|
||||||
|
ScheduledTaskSubscriber::where('task_id', $task->id)->deleteMany();
|
||||||
|
$task->delete();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
static function scheduleWPUserWelcomeNotification(
|
static function scheduleWPUserWelcomeNotification(
|
||||||
$subscriber_id,
|
$subscriber_id,
|
||||||
$wp_user,
|
$wp_user,
|
||||||
|
Reference in New Issue
Block a user