Skip Navigation

[Resolved] Listar usuarios. Filtrar por usuarios

This support ticket is created 5 years ago. There's a good chance that you are reading advice that it now obsolete.

This is the technical support forum for Toolset - a suite of plugins for developing WordPress sites without writing PHP.

Everyone can read this forum, but only Toolset clients can post in it. Toolset support works 6 days per week, 19 hours per day.

Sun Mon Tue Wed Thu Fri Sat
- 7:00 – 14:00 7:00 – 14:00 7:00 – 14:00 7:00 – 14:00 7:00 – 14:00 -
- 15:00 – 16:00 15:00 – 16:00 15:00 – 16:00 15:00 – 16:00 15:00 – 16:00 -

Supporter timezone: Europe/London (GMT+01:00)

This topic contains 17 replies, has 2 voices.

Last updated by miguelM-3 4 years, 12 months ago.

Assisted by: Nigel.

Author
Posts
#1235508

Dinos que estas tratando de hacer?
Estoy creando una web donde los usuarios se dan de alta como "colaboradores" para crear post personalizados (rutas, etc.) y necesito:
1. Crear un formulario para que los "colaboradores" se den de alta automáticamente o puedan ser dados de alta por un administrador, que queden vinculado al user de WP y que a partir de ahí puedan subir sus post. (No sé si es el camino correcto pero he creado un CPT para estos usuarios "colaboradores" pero no puedo agregarle campos de usuario que he creado y no sé por tanto cómo vincularlos a los usuarios estándar de WP)
2. Filtrar todos esos post por usuario. Ya utilizo otros filtros, pero no puedo hacerlo por usuario.
3. Hacer listas de usuarios con enlaces a listas con los post específicos de cada usuario para ver o editar.
4. Por último, he creado plantillas de Elementor para visualizar los post sin problemas y páginas con Elementor para albergar los formularios pero trabajando de este modo no puedo activar el formulario de edición correspondiente a un post cuando coloco el shortcode [toolset-edit-post-link] en la plantilla de Elementor. Solo funciona si diseño las plantillas con las "Plantillas de contenido" de Toolset
¿Hay alguna documentación que esté siguiendo?
https://toolset.com/documentation/user-guides/user-fields/
https://toolset.com/documentation/post-relationships/how-to-create-custom-searches-and-relationships-for-users/
https://toolset.com/documentation/user-guides/using-toolset-with-elementor-page-builder/create-templates-for-custom-post-types-with-elementor-and-toolset/
¿Hay algún ejemplo similar que podamos ver?
hidden link
¿Cuál es el enlace a su sitio?
hidden link

#1235606

Nigel
Supporter

Languages: English (English ) Spanish (Español )

Timezone: Europe/London (GMT+01:00)

Hola Miguel

Antes de todo, tienes que decidir cómo configurar el sitio para los usuarios.

Lo más sencillo es que cada colaborador es un usuario de WordPress normal (con rol dedicado).

Estos usuarios serán los autores de las entradas, y automáticamente tendrán un archivo de sus entradas (p.j. site.com/author/miguelm/, y es poca cosa cambiar "/author/" a "/colaborador/" ó similar).

También es bastante sencillo crear listas de entradas filtrado por autor.

La alternativa es crear un tipo de entrada "colaborador" que sirve como perfil, y se conecta los usuarios a sus perfiles mediante el autor de la entrada (es decir, son autores de su propia entrada).

La razón principal para considerar esta opción es que no puede crear búsquedas personalizadas para usuarios directamente (que típicamente se requiere un sitio de miembros).

Entonces, ¿qué te parece?

#1235757

Gracias Nigel.
Entonces, teniendo en cuenta que yo necesito listar los usuarios como aquí:
hidden link
Entrar luego en su ficha para ver un listado con sus aportaciones como aquí:
hidden link
Para poder ver (o editar) finalmente con detalle alguno de sus custom post types como aquí:
hidden link
¿Qué solución me recomiendas? ¿Trabajar con los usuarios de WordPress normales, o definir un tipo de entrada para "colaboradores"?

#1236045

Nigel
Supporter

Languages: English (English ) Spanish (Español )

Timezone: Europe/London (GMT+01:00)

Hola Miguel

Pues, si necesitas una búsqueda de usuarios sea necesario implementar entradas tipo "colaborador" conectado a usuarios de WP mediante el campo de autor de entrada.

Entonces tendrás:

- Crear usuario (los usuarios mismos mediante un formulario de registro, ó por un administrador)
- Crear perfil (entrada "colaborador", con el usuario como autor)
- El usuario publica entradas (p.j. "rutas") mediante formularios y sea el autor
- Una página tendrá una View que muestra (con búsqueda) colaboradores con enlaces
- La plantilla de colaboradores tendrá una View que muestra rutas publicadas por este usuario

Será necesario pasar el ID del autor de la entrada colaborador a este View para usar en un filtro de autor de entrada (https://toolset.com/documentation/user-guides/passing-arguments-to-views/#filter-by-authors).

¿Te parece bien?

Queda el cuestión de enlaces de editar formularios en plantillas de Elementor.

#1236090

Ok. Perfecto. Lo hago así entonces.
Una duda ¿Los campos personalizados del CPT de colaborador son campos normales y no de usuario no?
Revisaré bien vuestro tema de casas y apartamentos de ejemplo.

En cuanto a los enlaces para la edición de los CPT diseñados con plantillas de Elementor ¿qué tendría que hacer?
Tengo un problema similar al comentado en el foro por anandG-3 (https://toolset.com/forums/topic/front-end-content-editing-forms-built-with-cred-embedding-in-elementor-single/) y lo intenté también con esta ayuda https://toolset.com/documentation/getting-started-with-toolset/publish-content-from-the-front-end/forms-for-editing/ , desconecté Layouts y coloqué en la plantilla del CPT Rutas diseñada en Elementor el shortcode de edición [toolset-edit-post-link content_template_slug='editar-ruta' target='self']Editar %%POST_TITLE%%[/toolset-edit-post-link] pero no hay forma, solo consigo reeditar la información cuando trabajo con "Plantillas de Contenido" de Toolset y no con plantillas de Elementor (mucho más fáciles para mí).

Muchas gracias!

#1236094

Nigel
Supporter

Languages: English (English ) Spanish (Español )

Timezone: Europe/London (GMT+01:00)

Correcto, las entradas de colaborador sirve como perfil, entonces los campos personalizados pertenecen a la entrada y no al usuario (menos los campos estándar de usuario como email y tal).

Voy a hacer unas pruebas con Elementor ahora...

#1236224

Nigel
Supporter

Languages: English (English ) Spanish (Español )

Timezone: Europe/London (GMT+01:00)

Hola Miguel

Disculpe el retraso.

En mi sitio de prueba funciona como esperaba, pero es imprescindible que la plantilla de Elementor para las entradas incluye el módulo "Post Content" que Toolset sustituirá con el formulario.

¿Es lo que falta?

#1236246

Hola.
'Es imprescindible que la plantilla de Elementor para las entradas incluye el módulo "Post Content"'
¿Y eso qué es? ¿Cómo lo coloco al diseñar con Elementor?

#1236248

Nigel
Supporter

Languages: English (English ) Spanish (Español )

Timezone: Europe/London (GMT+01:00)

Screenshot 2019-04-26 at 14.50.03.png

Allí está.

#1236303
screencapture-raicesdelagua-galeria-galeria-de-prueba-2-2019-04-26-16_48_49.jpg

Hola Nigel.
Efectivamente, ahora puedo ver el formulario de edición, pero lo mete como un iframe debajo del propio post. ¿Hay alguna manera de que me lo abra a él solo y no debajo del post original? ¿puede ser que se comporte de este modo porque la plantilla de edición de contenido la he maquetado con "Plantillas de Contenido" de Toolset y no con plantillas de Elementor.

#1236839

Nigel
Supporter

Languages: English (English ) Spanish (Español )

Timezone: Europe/London (GMT+01:00)

Hola Miguel

Solo hay dos posibilidades.

1. Deja usar plantillas de Elementor para tipos de entrada editable por formularios de Toolset y usa plantillas de Toolset (el formulario reemplaza el contenido entero)

2. Incluir un módulo de Post Content en la plantilla de Elementor donde quieres aparecer el formulario de edición (el formulario reemplaza sólo este módulo)

Tenemos poco control de la salida de plantillas de Elementor.

#1236999

Hola Nigel, de acuerdo, poniendo el post content arriba no queda mal. Muchas Gracias. Ya estoy casi terminando pero tengo algunas dudas aún.

  • En cuanto a lo que me dices del ID: "- Una página tendrá una View que muestra (con búsqueda) colaboradores con enlaces. La plantilla de colaboradores tendrá una View que muestra rutas publicadas por este usuario.
    Será necesario pasar el ID del autor de la entrada colaborador a este View para usar en un filtro de autor de entrada"

    Yo he filtrado el autor de la entrada con la opción "El autor de la entrada es el autor de la página donde se muestra esta view". No sé si esto es a lo que te referías. Aparentemente se ve bien, ya que dentro de la CPT de cada colaborador es donde van las listas con sus entradas correspondientes. (Se trata de ver qué aporta cada uno de ellos de forma resumida).
  • Por otra parte, a la hora de filtrar las entradas de forma dinámica con Ajax y –con p. ej. menú desplegable– puedo hacerlo por cualquiera de los campos del CPT (localidades, municipios...), pero no puedo hacerlo por el autor de la entrada ya que no me sale como opción a la hora de incorporar los filtros. Un nombre del autor lo crea WordPress en el registro y también es el título del CPT "colaboradores", pero ninguno de estos 2 campos está disponible en los filtros ¿Cómo puedo hacerlo?
  • Tengo una duda con el proceso de inicio de sesión: Un usuario se registra o inicia sesión con un formulario que lo reenvía a su ficha de "colaboradores. Pero la ficha de colaboradores no es una, son muchas! basadas en una plantilla. Entonces, ¿cómo le digo a toolset a qué ficha ha de ir el usuario que ha iniciado sesión? ¿Y cómo creo ese enlace –que varía en función de la sesión activa– y que permite al colaborador acceder a su ficha, para poder colocarlo así en alguno de los menús?
  • Y por último. He creado en las entradas un enlace para que el autor pueda eliminarla con este código: [cred_delete_post_link action="delete" text="Eliminar" message_after="Entrada eliminada" message="¿Está seguro de que desea borrar este recurso?" message_show="1"], pero esa función borra la entrada definitivamente. ¿Hay alguna opción para que la envía a la papelera en lugar de borrarla del todo?
#1237023

Hola Nigel. El último apartado de mis dudas ya lo he resuelto.
[cred_delete_post_link class='cred-refresh-after-delete' text='Eliminar ficha' action='trash' message='¿Está seguro de que desea borrar este recurso?' message_after='Entrada eliminada' redirect ='190']

#1237024

Nigel
Supporter

Languages: English (English ) Spanish (Español )

Timezone: Europe/London (GMT+01:00)

Hola Miguel

Q1: Olvidé que existe esta opción pero su función es igual y puedes seguir usarla.

Q2: Las búsquedas solo pueden incluir filtros de campos personalizados ó de taxonomías y no de campos estándar, como autor ó título. (Hemos recibidos solicitudes de este funcionalidad anteriormente pero hasta ahora no lo hicimos; puedes añadir tu voz aquí: https://toolset.com/home/contact-us/suggest-a-new-feature-for-toolset/)

Una solución particular sería necesario. Los filtros son un formulario y podrías incluir tu propio control de filtro en el formulario y luego modificar la consulta utilizando un función de API como wpv_filter_query, pero es fuera de nuestra soporte proporcionar tal código.

Q3: El formulario de login acepta un atributo redirect_url pero al momento de cargar el formulario no se sabe a que usuario pertenece, entonces será necesario modificar el URL de redirección con el filtro estándar de WordPress "login_refidirect" : https://developer.wordpress.org/reference/hooks/login_redirect/

Se necesita una consulta que coge la entrada tipo colaborador con autor de este usuario y debe devolver el URL de la entrada.

Q4: El shortcode cred_delete_post_link tiene atributo "action" que determine si borrar una entrada usa la papelera o no: https://toolset.com/documentation/user-guides/cred-shortcodes/#cred_delete_post_link

#1237553

Hola Nigel
Como me dijiste, cree un CPT "colaborador" para poder hacer listas de colaboradores:
hidden link
Y poder así seleccionar los usuarios para ver sus recursos:
hidden link
Todo eso está ya funcionando.
Pero tengo un par de dudas
1. ¿Cuál es la url para que cada usuario pueda acceder a su CPT directamente? osea, ¿cómo puedo proporcionar a cada usuario un enlace a su CPT correspondiente para que vea o edite su perfil?
2. Y, para evitar que, por error, creen más de un perfil ¿cómo puedo limitar la creación de un solo CPT "colaborador" a cada usuario de WordPress ?
Muchísimas gracias

This ticket is now closed. If you're a WPML client and need related help, please open a new support ticket.