request = $application->request; } /** * Exports form entries as CSV. * * @todo:: refactor. */ public function index() { $formId = intval($this->request->get('form_id')); $form = wpFluent()->table('fluentform_forms')->find($formId); $formParser = new FormParser($form); $formInputs = $formParser->getEntryInputs(); $inputLabels = $formParser->getAdminLabels($formInputs); $submissions = wpFluent()->table('fluentform_submissions')->where('form_id', $formId)->get(); $submissions = FormResponseParser::transformSubmissions($submissions, $formInputs, $formId); $exportData = []; foreach ($submissions as $submission) { $responses = json_decode($submission->response, true); $temp = []; foreach ($inputLabels as $field => $label) { $value = ArrayHelper::get($responses, $field); $temp[] = is_array($value) ? implode(', ', $value) : $value; } $exportData[] = $temp; } $fileName = 'export-data-'.date('d-m-Y'); $writer = \League\Csv\Writer::createFromFileObject(new SplTempFileObject()); $writer->setDelimiter(","); $writer->setNewline("\r\n"); $writer->insertOne($inputLabels); $writer->insertAll($exportData); $writer->output($fileName.'.csv'); die(); } }