Ticker

6/recent/ticker-posts

Ad Code

Responsive Advertisement

Mostrar datos por usuario desde archivo CSV en WordPress

En un artículo anterior habíamos visto cómo mostrar datos desde un archivo .CSV, sin embargo en este artículo vamos a filtrar sólo los datos que correspondan a un determinado usuario.

 

Resultado Final

Basado en el nombre de usuario de los usuarios de WordPress.

Lista de usuarios de WordPress

 
Cuando un usuario se conecta obtendremos sus correspondientes datos del archivo .csv.

Mostrar datos desde .csv para un usuario

 

Código para mostrar datos de un usuario desde archivo .CSV

Puedes agregar el siguiente código en el archivo functions.php de tu tema hijo.

Puedes descargar el archivo .csv de ejemplo desde este enlace.
add_filter('the_content', 'dcms_show_csv_data_user');

function dcms_show_csv_data_user($content){

        $file_path = ABSPATH.'data/people-1000.csv';
        $page_slug = 'mostrar-datos';
        $column_search = 1; // Column to search user login
        $exclude_columns = ['Index']; // Columns to exclude

        // Show in specific page and file exists
        if ( is_page($page_slug) && file_exists($file_path) ){

                // Check if user is logged
                if ( !is_user_logged_in() ){
                        return 'Debes iniciar sesión para ver los datos';
                }

                // Get user login
                $current_user = wp_get_current_user();
                $user_login = $current_user->user_login;

                // Open file
                $f = fopen($file_path, "r");

                // Get header
                $header = fgetcsv($f, 1000);

                // Get body
                $data = [];
                while ( $line = fgetcsv($f) ) {
                        if ( $line[$column_search] === $user_login){
                                $data = $line;
                                break;
                        }
                }

                fclose($f);

                // Check if data is empty
                if ( empty($data) ){
                        echo 'No se encontraron datos';
                }

                // Build associative array
                $result = array_combine($header, $data);

                // Show data
                echo "<table class='csv-data'>\n";
                foreach ($result as $key => $value) {
                        if ( $exclude_columns && in_array($key, $exclude_columns) ){
                                continue;
                        }
                        echo "<tr>\n";
                        echo "<th>$key</th>\n";
                        echo "<td>$value</td>\n";
                        echo "</tr>\n";
                }
                echo "</table>\n";

        }

        return $content;
}

 

En el código anterior:

  • Usamos el Hook de filtro the_content para mostrar contenido adicional en una determinada página.
  • Dentro de la función a la que hace referencia el hook definimos la página en la que se mostrará el contenido en la variable $page_slug.
  • También definimos variables para la ruta del archivo, la columna de búsqueda de login del usuario, que será la columna número 1, y una variable en caso necesitemos excluir columnas del archivo .csv
  • Hacemos comprobaciones y verificamos si el usuario esta logueado.
  • Obtenemos el nombre del usuario en la variable $user_login.
  • Abrimos el archivo .csv y obtenemos la cabecera.
  • Obtenemos la data buscando en base a la columna 1 y al $user_login.
  • En la variable $result guardamos los datos como un array asociativo de claves y valor.
  • Finalmente, simplemente mostramos los resultados excluyendo las columnas de la variable $exclude_columns
  • En caso no se cumplan las condiciones iniciales simplemente retornamos el contenido de la página.

 

Conclusión

Como has podido comprobar puedes mostrar datos complementarios de un usuario basado en su username y obtener estos datos de un archivo .csv externo. Hemos visto como hacer esto directamente a través de código.

 

La entrada Mostrar datos por usuario desde archivo CSV en WordPress es un artículo reciente del sitio DecodeCMS.

Enregistrer un commentaire

0 Commentaires