This support ticket is created 4 years, 6 months 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.
No supporters are available to work today on Toolset forum. Feel free to create tickets and we will handle it as soon as we are online. Thank you for your understanding.
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...
¿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?
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.
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í:
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:
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"]"
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.
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?
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.