Skip Navigation

[Resuelto] CONDICIONAL EN ARCHIVO DE LISTA

This support ticket is created hace 4 años, 6 meses. 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.

Hoy no hay técnicos de soporte disponibles en el foro Juego de herramientas. Siéntase libre de enviar sus tiques y les daremos trámite tan pronto como estemos disponibles en línea. Gracias por su comprensión.

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+00:00)

Etiquetado: 

Este tema contiene 11 respuestas, tiene 2 mensajes.

Última actualización por iparqm hace 4 años, 6 meses.

Asistido por: Nigel.

Autor
Mensajes
#1610587

Hola, voy a tratar de explicar mi problema. Tengo un Post Type que se llama CONTACTOS y otro que se llama EMPRESAS, en ambos tengo un campo personalizado de casillas de verificación llamado GESTORES y que a cada valor le he dado el mismo valor que a los usuarios (P.Ej, Usuario Mario es ID 1 entonces el valor de la casilla "Mario" he dado el mismo que el ID) de tal manera que puedo asignar un contacto a varios gestores (Un Contacto puede ser creado por un usuario pero asignado a varios). Hasta ahí supongo que bien, el problema lo tengo al querer listar los registros en la página de archivo ya que lo que quiero es que únicamente sean visibles los contactos o empresas que hayan sido creados por el propio usuario o bien que estén asignados como Gestor...

Cómo puedo hacerlo?

Gracias.

#1611799

Nigel
Supporter

Idiomas: Inglés (English ) Español (Español )

Zona horaria: Europe/London (GMT+00:00)

¿Puedo clarificar?

¿Lo que quieres es mostrar en una página las entradas de contacto y de empresa que tienen marcado el campo gestor con el valor del ID del usuario corriente? ¿Es decir el usuario logueado que mira la página?

#1611993

Exacto, tengo una lista donde muestro los contactos y empresas, en el proyecto únicamente se usa para gente logueada, por tanto quiero que los resultados de las listas sean los que cumplen las siguientes condicionales:
1- el autor del registro es el usuario que está consultando la lista
2- el usuario fogueado está asignado como Gestor en el custom field gestor.

Por tanto el usuario logueado sólo ve aquellos contactos propios o asignados por otro author.

#1612217

Nigel
Supporter

Idiomas: Inglés (English ) Español (Español )

Zona horaria: Europe/London (GMT+00:00)

Screenshot 2020-05-05 at 12.38.37.png

Si lo he entendido bien, necesitas una vista que muestra entradas de contactos y de empresas.

Esta vista requiere un filtro del campo de casillas de verificación ("gestores"). Sea necesario pasar el valor del ID del usuario corriente a este vista mediante un atributo de shortcode.

Entonces al insertar el filtro especificamos que pasamos el valor por un atributo "autor" (por ejemplo), como en el pantallazo.

Y en la página donde insertamos esta vista, incluimos tal atributo con el ID del usuario corriente generado así:

[wpv-view name="gestionado" info="[wpv-current-user info='id']"]

Dime si quedan dudas...

#1612501

Hola. He realizado lo que me has comentado y si coloco el shortcode en una página me funciona correctamente en la View insertada como Shortcode de la siguiente manera:

[wpv-view name="lista-contactos-y-empresas" autor="[wpv-current-user info='id']"]

Ahora bien, cómo puedo hacer lo mismo para en vez de tener que hacerlo en una View lo pueda hacer en un Archivo de WordPress para que así esta configuración sea aplicada a todos post-types y taxonomías que tengo?

He intentado poner el filtro en el Archivo de WordPress de la siguiente manera :

"Seleccionar los elementos con el campo:
Gestores - AVAWOOD es un/a número igual a [wpv-user info="ID"]"

pero no me funciona

#1613703

Nigel
Supporter

Idiomas: Inglés (English ) Español (Español )

Zona horaria: Europe/London (GMT+00:00)

No hay manera pasar un valor a un archivo de WordPress como se puede pasar un valor a un View, por atributo. En un archivo se manipula la solicitud existente. No hay función del API de Toolset para modificar la consulta, sea necesario usar el API nativo de WordPress, pero se guarda campos de casillas de verificación en un formato particular y resulta que no se puede modificar la consulta nativa para filtrar por este campo.

La única manera pasar un valor al archivo es por parámetros de URL, pero requiere un URL como site.com/contacto/?autor=1 y no creo que te sirve en este caso.

#1614279

Hola, casi lo tengo... pero me ocurre algo extraño.
Utilizando esto en la plantilla de archivo :
<wpv-loop>
[wpv-conditional if="( ARRAY([types field='gestores-avawood' separator=', '][/types]) eq '[wpv-user field='ID']' )"][wpv-post-body view_template="plantilla-datos-tabla-contactos"][/wpv-conditional]
</wpv-loop>

Me los lista bien, pero hay una cosa extraña, para que aparezcan los registros debo entrar en ellos uno por uno desde el formulario de edición y volverlos a guardar o bien crear uno nuevo, en ese caso es cuando aparecen... es como si se tuviera que refrescar algo de información... que hasta que no editas el registro no se muestra.

Puedes mirar si hago algo mal o bien si existe alguna manera de hacer que se actualicen todos los datos a la vez?

#1615187

Nigel
Supporter

Idiomas: Inglés (English ) Español (Español )

Zona horaria: Europe/London (GMT+00:00)

¿Qué es la configuración de este campo? ¿Qué guarda?

¿Y como has insertado este condición? ¿De dónde aparece "ARRAY"? Este no es normal.

#1615367

El campo Gestores es un campo de check múltiple, y los valores que guarda son 1-2-3-4-5-6-7-8 que he hecho coindicir con los mismos ID de cada usuario. Ej Usuario ID 1 Mario ------ en campo personalizado para esa opción "Mario" he asignado 1.

¿Y como has insertado este condición?
Está insertada dentro del <Loop> de la plantilla de Archivos. y la instrucción ARRAY la he sacado de no sé donde.... de algún otro ticket de otro cliente, vamos investigando por vuestro sistema de soporte.

Pero como te digo el problema lo tengo que hasta que no entro en cada registro y vuelvo a guardar los datos, no me aparecen en la lista.... es algo raro.

#1616511

Nigel
Supporter

Idiomas: Inglés (English ) Español (Español )

Zona horaria: Europe/London (GMT+00:00)

¿Pero has guardada las entradas una vez despúes de crear el campo?

Si ya tenías entradas existentes al crear el campo las entradas no tendrán valor hasta que se guarda la entrada.

(¿Ó puede ser que cambiaste la configuración del campo? En este caso sería necesario guardar las entradas de nuevo.)

#1618105

Gracias, ya solucione el problema, era un problema a la hora de importar los datos, el ARRAY me funciona y me muestra los datos correctamente.

Saludos,

#1618107

My issue is resolved now. Thank you!