csv_line( array( 'viewed_at', 'source', 'referrer_host', 'utm_source', 'utm_medium', 'utm_campaign' ) ) ); foreach ( $rows as $row ) { echo esc_html( $this->csv_line( array( $row['viewed_at'] ?? '', $row['source'] ?? '', $row['referrer_host'] ?? '', $row['utm_source'] ?? '', $row['utm_medium'] ?? '', $row['utm_campaign'] ?? '', ) ) ); } exit; } /** * Build CSV line without direct file operations. * * @param array $fields Fields. * @return string */ private function csv_line( array $fields ) { $escaped = array(); foreach ( $fields as $field ) { $field = (string) $field; $field = str_replace( '"', '""', $field ); $escaped[] = '"' . $field . '"'; } return implode( ',', $escaped ) . "\r\n"; } }