delete(); } } /** * Reschedules tasks created after plugin activation so that they don't block cron tasks in tests */ public function withDefaultTasks() { $datetime = Carbon::createFromTimestamp((int)WPFunctions::get()->currentTime('timestamp')); $datetime->addDay(); $this->scheduleTask(WooCommercePastOrders::TASK_TYPE, $datetime); $this->scheduleTask(UnsubscribeTokens::TASK_TYPE, $datetime); $this->scheduleTask(SubscriberLinkTokens::TASK_TYPE, $datetime); $this->scheduleTask(Beamer::TASK_TYPE, $datetime); $this->scheduleTask(InactiveSubscribers::TASK_TYPE, $datetime); $this->scheduleTask(Migration::TASK_TYPE, $datetime); } private function scheduleTask(string $type, Carbon $datetime) { $task = \MailPoet\Models\ScheduledTask::where('type', $type)->findOne(); if (!($task instanceof \MailPoet\Models\ScheduledTask)) { $task = \MailPoet\Models\ScheduledTask::create(); } $task->type = $type; $task->status = \MailPoet\Models\ScheduledTask::STATUS_SCHEDULED; $task->scheduledAt = $datetime; $task->save(); } }