private function handle_column_mapping() { // Deconstruct mapping. if (empty($_POST['column_map'])) { return FALSE; } $column_mapping = $_POST['column_map']; try { $importer = $this->get_importer(); } catch (RuntimeException $e) { $this->errors[] = __('The file went away. Please try again.', 'tribe-events-calendar'); return FALSE; } $required_fields = $importer->get_required_fields(); $missing = array_diff($required_fields, $column_mapping); if (!empty($missing)) { $mapper = new TribeEventsImporter_ColumnMapper(get_option('tribe_events_import_type')); $message = __('<p>The following fields are required for a successful import:</p>', 'tribe-events-calendar'); $message .= '<ul style="list-style-type: disc; margin-left: 1.5em;">'; foreach ($missing as $key) { $message .= '<li>' . $mapper->get_column_label($key) . '</li>'; } $message .= '</ul>'; $this->errors[] = $message; return FALSE; } update_option('tribe_events_import_column_mapping', $column_mapping); return TRUE; }