blog webempresa

Como exportar e importar usuarios en WordPress

por | Abr 1, 2023 | Migraciones en WordPress

Cómo exportar e importar usuarios en WordPress

Como todo CMS, WordPress, además de gestionar contenidos en sí mismo, tiene un sistema propio para llevar el control de registros, bajas o eliminación y otras acciones sobre los usuarios de un sitio web.

Por eso quiero hablarte de cómo exportar e importar usuarios en WordPress, para que sepas lo que puedes hacer con ellos, con respecto a la gestión de sus datos y así también cumplir debidamente con el RGPD.

Como podrás imaginar, los usuarios son al final las personas que inician sesión en el sistema para hacer diferentes labores: ya sea administrar el sitio, crear entradas, administrar comentarios o si tienes una tienda de comercio electrónico, gestionar los pedidos, etc.

Si tienes un blog con WordPress o una
tienda online WooCommerce, tendrás al menos un usuario a tu nombre, probablemente con rol de «administrador».

Antes de hablar de cómo importar o exportar de forma masiva usuarios, veamos cómo los gestiona WordPress, qué datos albergan, qué capacidades tienen, qué roles existen… para así tendrás una perspectiva completa el proceso de importación o exportación de los mismos y entenderás todos sus detalles.

Una vez visto y entendido todo este panorama, te explico cómo importar y exportar usuarios de forma masiva con WordPress con el plugin Import Users From CSV With Meta, plugin que desarrollé, mantengo y que tengo el placer de ir mejorando.

A día de hoy es el plugin para importar usuarios más popular en el ecosistema WordPress y creo que puede serte muy útil (existen plugins de importación generales más populares, pero para importar solo usuarios, este es el que cuenta con más instalaciones activas).

  Usuarios en WordPress

 

Como en cualquier otro sistema en línea, cuando interactúas con WordPress, como persona, lo haces identificad@ o sin identificar.

Si estás sin identificar, sin loguear, lo harás como un visitante. En cuanto a programación, la función is_user_logged_in() te indica con verdadero o falso si el usuario está autenticado o no.

Si no eres un visitante, sino un usuario del sitio, lo serás por dos motivos:

  1. Porque alguien te ha registrado anteriormente, si eres el administrador del sitio, te habrás registrado en la instalación, en el momento que te pide expresamente el nombre y la contraseña del primer usuario administrador
  2. Porque has iniciado sesión, ya sea a través del formulario de login estándar (wp-login.php) o de cualquier otro formulario de inicio de sesión que uses, como por ejemplo los que proveen plugins como Clean Login

El registro a priori solo se hace una vez y el inicio de sesión se hace cada vez que accedes al sitio.

  ¿Qué datos definen a un usuario en WordPress?

 

Tu usuario en WordPress tiene al menos tres datos básicos y un rol, eso es lo mínimo que puede tener un usuario en WordPress:

  • Nombre de usuario.
  • Contraseña.
  • Correo electrónico.
  • Rol.

El nombre de usuario y el correo electrónico, pueden coincidir, pero a efectos de base de datos, serán dos datos diferenciados. Como puedes imaginar esto es lo mínimo porque hace falta:

  • Un usuario y una contraseña con la que iniciar sesión.
  • Un email con el que comunicarse.
  • Un rol que identifique qué capacidades tiene el usuario en el sistema, no es lo mismo un administrador que gestiona todo que un suscriptor que es el rol más básico que existe.

No es el objetivo de esta entrada hablar de los roles o «capacidades de usuarios», pero básicamente decirte que cada rol, que tiene un usuario; tiene una serie de capacidades. De forma que así el sistema determina qué privilegios tiene cada usuario.

Puedes crear nuevos roles o editar los existentes directamente con código o utilizando algún plugin como User Role Editor, muy recomendable para esta labor.

Plugin User Role Editor
Gratuito
Comercial

Aparte de esto, te recomiendo que leas la documentación sobre “Roles and capabilities” si quieres ahondar más en este tema.

Adicionalmente, WordPress puede almacenar por defecto los siguientes campos para cada usuario:

  • user_nicename: el nombre de usuario en versión «amable con la URL», para poder crear URL como la de autor.
  • user_url: la URL del usuario.

  • display_name: el nombre que se muestra del usuario en WordPress.
  • nickname: por defecto es el mismo que el nombre de usuario.
  • first_name: el nombre.

  • last_name: los apellidos.
  • description: donde rellenas la biografía.

Junto con otros pocos datos internos como cuándo se registró el usuario, cuál es el esquema de colores que usa del panel o si el usuario debe o no conectarse por SSL. Estos datos los ves en “Mi perfil” o en “Editar usuario” en el backend de WordPress.

Mi perfil de WordPress

Si necesitas más datos, que los necesitaras casi seguro en cualquier proyecto que desarrolles, la tabla wp_usermeta te permite almacenar cualquier otro dato que quieras para un usuario.

Por ejemplo, WooCommerce usa esta tabla para guardar datos como la dirección, la ciudad o la provincia de los clientes que se registran.

  El problema de importar usuarios en lote

 

Ahora te preguntarás por qué puede ser necesario tener una herramienta para importar, es decir, dar de alta, a muchos usuarios de forma masiva de una sola vez.

Si tienes un blog, te resultará rara esta posibilidad. Probablemente, tendrás solo un usuario o a lo sumo alguno más. Es decir, tú como administrador/a y quizás, algún que otro autor.

Sin embargo, como bien sabrás, WordPress a día de hoy no es solo un sistema gestor de contenidos para crear cuadernos de bitácora. Con WordPress a día de hoy es posible crear todo tipo de sistemas web:

Como imaginarás, todos estos plugins manejan muchos más datos que los que he contado antes y para muchos más usuarios. Por ejemplo, en el caso de WooCommerce tienes de base, como mínimo, los siguientes metadatos por cada cliente:

  • billing_first_name
  • billing_last_name
  • billing_company
  • billing_address_1
  • billing_address_2
  • billing_city
  • billing_postcode
  • billing_country
  • billing_state
  • billing_phone
  • billing_email
  • shipping_first_name
  • shipping_last_name
  • shipping_company
  • shipping_address_1
  • shipping_address_2
  • shipping_city
  • shipping_postcode
  • shipping_country
  • Shipping_state

Que se manejan en la pantalla de Mis direcciones, de la página Mi cuenta, tal como te muestro a continuación:

Recuerda que WooCommerce te permite por defecto establecer para cada pedido y para cada cliente esta diferencia, una dirección de facturación y otra de envío. La primera será la billing address y la segunda la shipping address.

Luego para cada una de ellas: nombre, apellidos, empresa, dos líneas para la dirección, ciudad, código postal, país y estado. Aparte para la facturación está también un email y un teléfono.

Imagina tener que rellenar datos para 100 clientes con 20 metadatos de este tipo, aparte de los que ya pide WordPress por defecto.

Piensa que aunque el email sea el mismo, tendrás que rellenar el email de WordPress y el de facturación de WooCommerce; o por ejemplo en el caso de nombre y apellidos habrá que incluir el nombre y apellidos tres veces (WordPress, y dos en WooCommerce, dirección de facturación y de envío).

Considera que muchos de los que llegan a WordPress para usarlo en una de sus muchas formas viene de otro sistema, ya sea online u offline. Si quieres ejemplos de usos offline que pasan a WordPress te digo casos que he encontrado:

  • Hay quien tiene una tienda física y quiere dar de alta todos sus clientes en su tienda online para interactuar.
  • O una academia que va a incluir a todos los alumnos en un WordPress para que puedan acceder a un elearning basado en LMS Course.
  • Una empresa que quiere crear una Intranet con WP Customer Area para que sus empleados vean datos internos.

Y bueno, casos online, puedes imaginar todos los que quieras. Todos los sistemas libres (PrestaShop, Magento, Joomla!, Drupal, etc.) o propietarios; que pasen a WordPress, que cada día son más, traen con ellos, entre otras cosas, usuarios con datos que suele ser necesario importar de forma masiva.

Igual que tienes la necesidad de importar, puedes tener la contraria, exportar los datos de tus usuarios. Ya sea para importarlos a otro WordPress, para migrarlos a otro sistema o porque necesites tratarlos con una hoja de cálculo o base de datos aparte para cualquier otra razón.

  Instalar un plugin para importar y exportar usuarios

 

Tras hablar de los usuarios, de los roles, sus metadatos, cómo se usan los usuarios en diferentes escenarios con WordPress, paso a explicar cómo realizar una importación de los mismos con un plugin que te comenté: Import Users From CSV With Meta.

Plugin Import and export users and customers
Gratuito

Lo primero, será instalar el mismo. Al ser un plugin libre, disponible en el repositorio, solo tienes que buscarlo en:

  1. Tu escritorio de WordPress.
  2. En Plugins ➜ Añadir nuevo.
  3. Busca Import users y lo instalas.
Instalar el plugin Import Users en WordPress

Una vez lo tengas instalado, tendrás en Herramientas un nuevo elemento llamado Importar usuarios desde CSV. Lo que resta ah continuación es tener los usuarios preparados para importarlos.

Si tienes otra instalación de WordPress puedes hacerlo directamente, accediendo a esa opción y eligiendo la pestaña Exportar que es la segunda que aparece. Ahí ves un botón para exportar un CSV con el formato correcto para enviar los usuarios con todos sus datos y metadatos a otro sitio.

Si no, te explico cómo crear un CSV correcto para poder importar los datos de forma satisfactoria.

Lo primero es tener una buena herramienta para manejar archivos CSV. Este tipo de fichero, del inglés comma separated values, es decir, valores separados por comas, es un tipo de fichero muy sencillo en su manejo y a la vez muy potente.

Para que te hagas una idea, permite manejar un fichero de tipo Excel, es decir, con filas y columnas, de forma muy sencilla y ligera. Por eso mismo, a día de hoy es un estándar de facto a la hora de enviar datos de este tipo, en forma de tabla y de forma sencilla, entre diferentes sistemas.

Aunque Microsoft Excel permite guardar sus ficheros como CSV, personalmente te recomiendo LibreOffice u OpenOffice (incluso Google Drive).

Como podrás imaginar son muchos años manejando importaciones de este tipo y estas soluciones, me han dado menos problemas que la de Microsoft, ¿por qué? Porque delimitan mejor los valores y te aseguras de que los datos estén en codificación UTF-8.

El hecho de guardar un fichero de este tipo con el juego de caracteres UTF-8 es muy importante para usuarios de habla hispana, en donde la lengua tiene caracteres que no están contemplados en el ASCII estándar y pueden dar problemas con otros juegos de caracteres, por ejemplo los UNICODE. Me refiero a la eñe y a todas las vocales acentuadas con tilde, etc.

  Importar usuarios

 

Lo primero es crear un fichero nuevo y empezar a rellenar la primera fila. La primera fila representa “la forma” que tendrán los datos, así que tienes que prepararla primero, para luego rellenar en la fila segunda en adelante, datos para cada usuario.

Las dos primeras columnas tienen que ser:

  • Nombre de usuario.
  • Correo electrónico.

Esto es así porque, como decía antes, son dos datos básicos y necesarios. Esas columnas son obligatorias y las únicas que tienen que estar ahí, en ese orden, el resto puedes ponerlo en el orden que quieras siempre que escribas bien el nombre de la columna.

Ejemplo de hoja de cálculo con los campos obligatorios y otros para WooCommerce

El sistema, además de importar a los usuarios, les envía un correo con sus datos. Entre estos datos, puedes incluir la contraseña de manera que la reciban para acceder la primera vez y que luego, si quieren, puedan cambiarla.

Para la contraseña haz lo siguiente:

  • Si no creas una columna para las contraseñas: las contraseñas se generarán automáticamente.
  • Si creas una columna para las contraseñas (a la que debes de llamar password: si la celda está vacía, la contraseña no se actualizará; si la celda tiene un valor, es el que se usará como contraseña.
Ejemplo de hoja de cálculo con el campo contraseña establecido

Cuando hablo de actualizar te preguntarás a qué me refiero si es que estamos importando usuarios. Y es que además de crear nuevos usuarios de forma masiva, si el usuario ya existe, es posible actualizarlo también de forma masiva.

Aparte de la contraseña, también puedes incluir una columna con el rol que tendrán los usuarios:

  • Si no creas una columna para los perfiles: los perfiles serán elegidos del campo perfil por defecto en la ventana de importación.
  • Si creas una columna llamada role: si la celda está vacía, se escogen los perfiles del campo Default role (perfil por defecto) en la ventana de importación; si la celda tiene un valor, se usará como perfil, si ese perfil no existe se usará el que esté por defecto.

Usa los slug de los roles, es decir, subscriber en vez Subscriber para referirte a ellos en el fichero CSV.

Por cierto, como nota curiosa decir que aunque WordPress por defecto no lo permite, este plugin puede incluir varios roles por usuario, haciendo que la celda role tenga valores separados por comas.

Aparte de esas dos columnas “especiales” para roles y contraseñas, el resto de columnas deben corresponderse con:

  • El dato estándar de WordPress a importar.
  • El metadato en cuestión.

En la pestaña Documentación tienes el listado entero, para que te hagas una idea, te doy un ejemplo de cada:

  • display_name para enseñar el nombre a mostrar del usuario.
  • shipping_postcode para incluir el código postal de la dirección de facturación del cliente

Y así con todos los datos de WordPress o metadatos que quieras usar. Encontrarás un fichero de ejemplo en la pestaña de Documentación que puede ser una buena base para comenzar tu trabajo.

Así que rellenando la primera fila con los diferentes datos que vas a importar y el resto de filas con los datos de los usuarios en sí, tendrás lista la importación.

Guarda el fichero como CSV, ve luego a la primera pestaña Importar y ahí, elige el rol por defecto y el fichero y listo.

El proceso se ejecutará y se crearán y actualizarán los usuarios en el sistema.

Listas para importar usuarios en WordPress

Una vez importados los usuarios desde el archivo CSV, deberías poder ver una tabla de los registros añadidos con los valores de cada campo. Si el archivo CSV estaba bien construido, la importación se realizará de forma correcta.

Usuarios importados en WordPress con un archivo CSV de forma masiva

La mejor forma de comprobar que los usuarios ya forman parte de la base de datos de la instalación de WordPress, es yendo a Usuarios ➜ Todos los usuarios y verificar si aparecen de forma correcta los datos extraídos del archivo CSV.

Lista de usuarios importados en WordPress

  Cómo exportar usuarios en WordPress

 

Con el plugin Import and export users and customers también puedes exportar usuarios de determinado sitio web para luego utilizarlos en una hoja de cálculo o llevártelos por ejemplo a alguna aplicación web de marketing automatizado con Mautic y poder luego gestionar campañas de email dirigidas y automatizadas.

Desde el dashboard del sitio web donde tienes los usuarios que quieres exportar, y previa instalación del citado plugin, ve a Herramientas ➜ Importar y exportar usuarios y clientes y una vez dentro, localiza arriba la pestaña Exportar.

Aquí puedes determinar si solo quieres exportar los usuarios de un perfil específico o todos los perfiles, desde el selector del campo Perfil.

Seleccionar los perfiles a exportar

En el campo Delimitador establece que sea como el tipo de carácter que delimite cada valor del archivo generado con los datos exportados.

El resto de campos previos a la exportación de datos de usuarios, los puedes dejar como vienen por defecto, salvo que quieras aplicar filtros de fechas de alta de usuarios o que se ordenen alfabéticamente los mismos.

Hecho esto, ahora puedes hacer clic en el botón Descargar para obtener un archivo CSV con los datos de usuarios que luego podrás importar en un archivo de hoja de cálculo o en otra instalación de WordPress, Mautic, etc.

Exportar usuarios de WordPress en formato CSV

  Correos electrónicos y tareas cron

 

Antes de terminar quería comentar dos cosas más que permite el plugin que creo interesantes. Las introduciré y ya si quieres hacer uso de ellas y tienes dudas puedes preguntar en el soporte del plugin.

Lo primero son los correos electrónicos. Puedes enviar un correo a cada usuario que está siendo importado. Esto es importante porque así todos tendrán una notificación de su nuevo usuario. Este correo electrónico se configura en la pestaña Opciones de correo y en dicho correo es posible incluir cualquier dato que esté siendo importado o generado, como la contraseña.

El sistema tiene plantillas de correo, por si usas a menudo la importación y con base en el tipo de importación queréis enviar un tipo de correo u otro.

Por otro lado, comentar la posibilidad de incluir tareas cron de importación. Es decir, tareas que se ejecuten cada cierto tiempo, de forma autónoma. Por ejemplo, el sistema una vez al día leerá el CSV que está situado en una ruta concreta y actualizará los datos.

Importación cron en WordPress

Esta herramienta es muy útil para sincronizar bases de datos externas con la de WordPress, hacer integraciones entre diferentes sistemas o para actualizar algún valor de forma automática desde una fuente externa. En Codection hacemos a menudo este tipo de trabajos y este plugin, es una buena base sobre la que asentamos si no el desarrollo completo, parte del mismo.

  Conclusiones

 

Y bueno, con esto termino esta entrada sobre usuarios, roles, sus datos y cómo importarlos y exportarlos en WordPress; que espero te haya aclarado algunos conceptos, y que disfrutes de una herramienta que te permita hacer importaciones e integraciones de forma rápida y sencilla.

Si eres profesional del tema seguro que alguna vez te habría venido bien poder usar esta herramienta y si no lo eres, te animo a que pruebes a crear o actualizar usuarios con un fichero Excel, es cómodo y bien rápido.

¿Te ha resultado útil este artículo?

Promo Junio Webempresa