get_database(), $this->get_tables() ); $sended = new send_log_repository( $this->get_database(), $this->get_tables() ); $template = ( $this ->get_templates() ->prepare('single_campaign') ); foreach ($repository->load_all() as $campaign) { $options = []; $options['id'] = $campaign->get_id(); $options['title'] = $campaign->message->title; $options['sended'] = $sended->count($campaign, true); if ($campaign->finalized === null) { $options['to_send'] = $sended->count($campaign, false); } else { $options['to_send'] = 0; } $options['finalized'] = $campaign->finalized !== null ? $campaign->finalized->format('Y-m-d H:i:s') : __('No', 'cx_newsletter'); $options['test'] = $campaign->test ? __('Yes', 'cx_newsletter') : __('No', 'cx_newsletter'); $options['type'] = match ($campaign->type) { campaign_type::sms => __('SMS campaign', 'cx_newsletter'), campaign_type::email => __('E-Mail campaign', 'cx_newsletter') }; $result->push($template->render($options)); } return $result; } public function process() : self { $this->set('campaigns', $this->load_campaigns()); return $this; } }