Por qué los datos de usuario en WordPress pueden ser una pesadilla

Cada sitio web que creamos tiene sus propios desafíos. Pero las herramientas que utilizamos pueden ayudarnos a enfrentarlas de frente.

WordPress y su ecosistema de complementos infinitos han ayudado a los dise√Īadores web a dominar incluso las solicitudes m√°s dif√≠ciles de los clientes. Casi todo lo que necesitamos es hacer clic y listo. Y si no existe, podemos construirlo nosotros mismos.

Pero para cada una de estas soluciones que implementamos, hay una consecuencia oculta. Uno que solo aumenta cuando profundizamos un poco más en los datos específicos del usuario. Solo entonces notamos el desorden debajo de la hermosa capa exterior.

Un comienzo simple

En una instalación estándar de WordPress, los datos del usuario (al menos el tipo que desea exportar) en realidad son bastante limpios y organizados. Los datos se almacenan en la tabla de base de datos wp_usermeta. En el interior, encontrará los conceptos básicos, como nombre de usuario, junto con sus roles / características y preferencias de cuenta.

Combine esto con lo que est√° en la tabla wp_users (nombre de usuario, direcci√≥n de correo electr√≥nico, contrase√Īa) y puede obtener mucha informaci√≥n √ļtil para cada usuario en su sitio. Adem√°s, puede importar f√°cilmente una lista CSV de nuevos usuarios, si es necesario.

Obviamente, la mayoría de los sitios no se detienen en una configuración estándar. En cambio, generalmente agregamos cualquier cantidad de complementos para que los usuarios puedan hacer más con nuestro sitio.

Queremos que hagan cosas como información de perfil personalizada, rastrear pedidos y pertenecer a grupos específicos. Además, los recursos tales como foros, portales de soporte y sistemas de gestión del aprendizaje también se utilizan ampliamente en la actualidad.

Y solo está rascando la superficie. Hay mucho más que se puede agregar a un sitio web típico de WordPress. Esto está bien, hasta que necesite tratar de discutir los datos.

Tabla de usuarios de Meta WordPress.

Datos, datos, en cualquier lugar.

El problema en cuestión no es tanto culpa de WordPress en sí. Aquí es donde, en muchos casos, se almacenan ciertos datos para los desarrolladores de complementos. Esto puede hacer que los datos de usuario que desea recopilar se almacenen en todas partes. Es la naturaleza de la bestia.

Usemos un sitio web reciente en el que trabajé como ejemplo. Utiliza un complemento de membresía, que permite a las personas participar en la organización del cliente.

Información recopilada

Cuando se registran, solicitamos más que solo los metadatos de usuario estándar de WordPress. Se solicita a los nuevos miembros que brinden información como:

  • Direcci√≥n de Env√≠o;
  • N√ļmero de tel√©fono;
  • Su preferencia por la forma en que reciben boletines (correo electr√≥nico o publicaci√≥n);
  • Datos generados

    Además de la información que solicitamos a los usuarios, también existe una gran cantidad de datos generados por el complemento de membresía, que incluye:

  • Estado de membres√≠a (activo o inactivo);
  • Nivel de membres√≠a;
  • Fecha de vencimiento de la membres√≠a;
  • No hay nada exagerado en la configuraci√≥n. Probablemente no sea muy diferente de las decenas de miles de otros sitios que ejecutan el mismo conjunto de miembros.

    Aunque el sitio en sí no es muy complicado, no significa que los datos del usuario sean fáciles de encontrar. Veamos cómo una tarea aparentemente simple puede convertirse en un desafío que consume mucho tiempo.

    Código HTML en una pantalla.

    El desafío

    El cliente ten√≠a una necesidad muy b√°sica. Quer√≠an una exportaci√≥n de todos los miembros activos que prefieren recibir una copia impresa del bolet√≠n de la organizaci√≥n. Seg√ļn lo que tenemos, solo deber√≠a tomar unos minutos improvisar. Fue muy lejos.

    Esto fue mucho más difícil de lo que imaginaba. Los datos que necesitábamos estaban allí en la base de datos. Pero tratar de reconstruirlo resultó ser una tarea casi monumental para alguien que no es un asistente de consulta de base de datos.

    Sin embargo, es por eso que tenemos complementos, ¬Ņverdad? Y hay innumerables opciones diferentes, gratis y premium. Pero, no importa lo que intent√©, no obtuve exactamente lo que requer√≠a la exportaci√≥n. Es por eso que:

  • los datos personalizados que solicitamos a los miembros que proporcionen nosotros es lo suficientemente f√°cil de conseguir. Est√° en la tabla wp_usermeta, que los complementos de exportaci√≥n del usuario generalmente pueden encontrar. Por lo tanto, generar una lista de usuarios que desean que la copia impresa del bolet√≠n sea bastante simple.
  • los otros datos relacionados con miembrosSin embargo, se almacena en otra tabla exclusiva del complemento de asociaci√≥n. Incluso un complemento comercial muy robusto que utilic√© no podr√≠a ayudarme aqu√≠.
  • El resultado fue que pude averiguar qui√©n solicit√≥ la edici√≥n postal del bolet√≠n, pero no pude averiguar si su membres√≠a estaba activa, lo que no fue muy √ļtil.

    Por supuesto, esta informaci√≥n se almacen√≥ en una tabla adyacente en la misma base de datos, pero tambi√©n podr√≠a estar en J√ļpiter para mis prop√≥sitos. Parec√≠a estar buscando las llaves de la casa, solo para descubrir que el vecino las ten√≠a buscando rescate.

    Finalmente, encontré un complemento de exportación, uno que incluía un complemento para el complemento de asociación, capaz de ayudarme a recopilar los datos necesarios. Si eso no existiera, todavía estaría atascado con solo la mitad de una solución.

    Persona que ve una hoja de c√°lculo en una computadora port√°til.

    ¬ŅSe puede mejorar la experiencia?

    Todo esto me dejó preguntándome cómo se pueden mejorar o evitar estas situaciones en primer lugar. Es una decisión difícil.

    Primero, admito que este tipo de desaf√≠o no es mi punto fuerte. Alguien con mucha experiencia en PHP y MySQL probablemente podr√≠a encontrar una soluci√≥n personalizada. ¬ŅYo? Me quedo para probar los complementos y gemir cuando no funcionan como se esperaba.

    Pero una pregunta que vale la pena hacer es: Si se requiere esta experiencia para exportar un conjunto completo de datos de usuario? Parece que debe haber una manera m√°s f√°cil de usar esto para trabajar.

    El hecho de que WordPress permita que los complementos creen sus propias tablas de base de datos es comprensible e incluso beneficioso. Asegura que podamos instalar y desinstalar complementos sin temor a romper nada.

    Sin embargo, aunque todo esto funciona a simple vista, es todo menos para aquellos de nosotros que estamos tratando de acceder a los datos subyacentes.

    Quizás debería haber una API que permita obtener todo lo relacionado con un usuario específico, independientemente de dónde esté almacenado en la base de datos. Pero dejaré esta discusión a aquellos que conocen los pros y los contras de esta característica.

    Hasta entonces, continuar√© organizando las cosas seg√ļn lo necesiten los clientes, esperando un proceso mucho m√°s limpio en el futuro.