get_results( $wpdb->prepare( 'select * from `%1s` where csv_id = %d', // phpcs:ignore WordPress.DB.PreparedSQLPlaceholders array( WPDA::remove_backticks( static::get_base_table_name() ), $csv_id, ) ) ); } public static function insert( $csv_name, $real_file_name, $orig_file_name ) { global $wpdb; if ( 1 === $wpdb->insert( static::get_base_table_name(), array( 'csv_name' => $csv_name, 'csv_real_file_name' => $real_file_name, 'csv_orig_file_name' => $orig_file_name, 'csv_timestamp' => date( 'Y-m-d H:i:s' ), ) ) ) { return $wpdb->insert_id; } else { return false; } } public static function update( $csv_id, $real_file_name, $orig_file_name ) { global $wpdb; return ( 1 === $wpdb->update( static::get_base_table_name(), array( 'csv_real_file_name' => $real_file_name, 'csv_orig_file_name' => $orig_file_name, 'csv_timestamp' => date( 'Y-m-d H:i:s' ), ), array( 'csv_id' => $csv_id, ) ) ); } public static function save_mapping() { header( 'Content-Type: text/plain; charset=utf-8' ); if ( ! isset( $_REQUEST['csv_id'] ) || ! isset( $_REQUEST['csv_mapping'] ) || ! isset( $_REQUEST['wpnonce'] ) ) { echo 'INV-Wrong arguments'; return; } $csv_id = sanitize_text_field( wp_unslash( $_REQUEST['csv_id'] ) ); // input var okay. // Check if actions is allowed $wp_nonce = isset( $_REQUEST['wpnonce'] ) ? sanitize_text_field( wp_unslash( $_REQUEST['wpnonce'] ) ) : ''; // input var okay. if ( ! wp_verify_nonce( $wp_nonce, "wpda-csv-mapping-{$csv_id}" ) ) { echo 'INV-Not authorized'; return; } $csv_mapping = json_encode( WPDA::sanitize_text_field_array( $_REQUEST['csv_mapping'], ['delimiter'] ) // phpcs:ignore WordPress.Security.ValidatedSanitizedInput ); global $wpdb; $wpdb->suppress_errors( true ); $rows_update = $wpdb->query( $wpdb->prepare( 'update `%1s` set csv_mapping = %s where csv_id = %d', // phpcs:ignore WordPress.DB.PreparedSQLPlaceholders array( WPDA::remove_backticks( static::get_base_table_name() ), $csv_mapping, $csv_id, ) ) ); echo '' === $wpdb->last_error ? 'UPD-' . esc_attr( $rows_update ) : 'ERR-' . $wpdb->last_error; // phpcs:ignore WordPress.Security.EscapeOutput } public static function preview_mapping() { header( 'Content-Type: text/plain; charset=utf-8' ); if ( ! isset( $_REQUEST['csv_id'] ) || ! isset( $_REQUEST['page_number'] ) || ! isset( $_REQUEST['page_length'] ) || ! isset( $_REQUEST['wpnonce'] ) ) { echo 'INV-Wrong arguments'; return; } $csv_id = sanitize_text_field( wp_unslash( $_REQUEST['csv_id'] ) ); // input var okay. // Check if actions is allowed $wp_nonce = isset( $_REQUEST['wpnonce'] ) ? sanitize_text_field( wp_unslash( $_REQUEST['wpnonce'] ) ) : ''; // input var okay. if ( ! wp_verify_nonce( $wp_nonce, "wpda-csv-preview-mapping-{$csv_id}" ) ) { echo 'INV-Not authorized'; return; } $page_number = sanitize_text_field( wp_unslash( $_REQUEST['page_number'] ) ); // input var okay. $page_length = sanitize_text_field( wp_unslash( $_REQUEST['page_length'] ) ); // input var okay. $dbrow = self::query( $csv_id ); global $wpdb; if ( '' !== $wpdb->last_error ) { echo 'ERR-' . $wpdb->last_error; // phpcs:ignore WordPress.Security.EscapeOutput } if ( 1 === $wpdb->num_rows ) { if ( ! isset( $dbrow[0]->csv_real_file_name ) ) { echo 'ERR-No file'; } else { $upload_dir = WPDA::get_plugin_upload_dir(); $file_name = $upload_dir . $dbrow[0]->csv_real_file_name; @ini_set( 'auto_detect_line_endings', true ); if ( false !== ( $fp = fopen( $file_name, 'rb' ) ) ) { $mapping = isset( $dbrow[0]->csv_mapping ) ? json_decode( $dbrow[0]->csv_mapping, true ) : array(); $delimiter = isset( $mapping['settings']['delimiter'] ) ? $mapping['settings']['delimiter'] : ','; $has_header_columns = isset( $mapping['settings']['has_header_columns'] ) ? $mapping['settings']['has_header_columns'] : true; if ( '\\t' == $delimiter ) { $delimiter = "\t"; } $start = ( $page_number - 1 ) * $page_length; if ( $start === 0 ) { $end = $page_length; } else { $end = $page_number * $page_length; } $next_page = $page_number + 1; $prev_page = $page_number - 1; if ( $prev_page < 1 ) { $prev_page = 1; } echo '
'; echo '| ' . esc_attr( $data[$column] ) . ' | '; } echo '
|---|
| ' . esc_attr( $data[$column] ) . ' | '; } echo '
| ' . __( 'No data found', 'wp-data-access' ) . ' |