$form_id ) { $line_values = array(); foreach($array_keys as $array_key ) { $val = isset( $array[ $array_key ][ $line ] ) ? $array[ $array_key ][ $line ] : ''; $line_values[ $array_key ] = $val; } fputcsv($df, $line_values); } } /** * Download file * @return csv file */ public function download_csv_file(){ global $wpdb; $wpforms = apply_filters( 'WPFormsDB_database', $wpdb ); $table_name = $wpforms->prefix.'wpforms_db'; if( isset($_REQUEST['wpforms-csv']) && isset( $_REQUEST['nonce'] ) ){ if ( ! wp_verify_nonce( $_REQUEST['nonce'], 'dnonce')) { wp_die( 'Not Valid.. Download nonce..!! ' ); } $fid = (int)$_REQUEST['fid']; $heading_row = $wpforms->get_results("SELECT form_id, form_value, form_date FROM $table_name WHERE form_post_id = '$fid' ORDER BY form_id DESC LIMIT 1",OBJECT); $heading_row = reset( $heading_row ); $heading_row = unserialize( $heading_row->form_value ); $heading_key = array_keys( $heading_row ); $total_rows = $wpforms->get_var("SELECT COUNT(*) FROM $table_name WHERE form_post_id = '$fid' "); $per_query = 1000; $total_query = ( $total_rows / $per_query ); $this->download_send_headers( "WPFormsDB-" . gmdate("Y-m-d") . ".csv" ); $df = fopen("php://output", 'w'); ob_start(); for( $p = 0; $p <= $total_query; $p++ ){ $offset = $p * $per_query; $results = $wpforms->get_results("SELECT form_id, form_value, form_date FROM $table_name WHERE form_post_id = '$fid' ORDER BY form_id DESC LIMIT $offset, $per_query",OBJECT); $data = array(); $i = 0; foreach ($results as $result) : $i++; $data['form_id'][$i] = $result->form_id; $data['form_date'][$i] = $result->form_date; $resultTmp = unserialize( $result->form_value ); foreach ($resultTmp as $key => $value): if ( ! in_array( $key, $heading_key ) ) continue; if ( is_array($value) ){ $data[$key][$i] = implode(', ', $value); continue; } $data[$key][$i] = str_replace( array('"',''','/','\') , array('"',"'",'/','\\'), $value ); endforeach; endforeach; echo $this->array2csv( $data, $df ); } echo ob_get_clean(); fclose( $df ); // phpcs:ignore WordPress.WP.AlternativeFunctions.file_system_operations_fclose die(); } } }