Skip Navigation

[Resuelto] Formulario personalizado en cada página CPT

Este es el foro de soporte técnico para Toolset: un paquete de plugines para el desarrollo de sitios WordPress sin escribir PHP.

Cualquier persona puede leerlo, pero solo los clientes de Toolset pueden publicar en este foro. El soporte de Toolset atiende 6 días a la semana, 19 horas por día.

This topic contains 5 respuestas, has 2 mensajes.

Last updated by Nigel hace 2 meses, 3 semanas.

Assigned support staff: Nigel.

Autor
Mensajes
#2037565

Tengo creado un CPT padre llamado "academias" que tiene relacionado uno o varios CPT hijo llamado "curso"
Quiero añadir un formulario de contacto en cada página de curso y que automáticamente se mande al email de contacto que tenemos registrado mediante un CF en el CPT padre "academia"
Pero no tengo claro como poder realizar esto.

#2037873

Nigel
Supporter

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

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

Screenshot 2021-04-30 at 14.07.25.png

El formulario está insertado en la plantilla de mostrar la entrada superior, ¿correcto?

En este caso el contexto del formulario es la entrada superior, y si añades un shortcode para mostrar el valor del campo de email al formulario, mostrará el valor de la entrada corriente (es decir, el padre).

Así, p.j.

[types field="academia-email-campo" output="raw"][/types]

Una notificación tiene la opción de mandar el correo a una dirección de email incluido en un campo del formulario, entonces puedes usar el shortcode de types para dar el valor por defecto de tal campo usado por la notificación.

Debes añadir un campo genérico de email, y usar el shortcode de Types para dar el valor por defecto.

Pero, solo puedes usar un campo genérico para una notificación si tiene la opción "persist" = 1... y solo puedes añadir este opción si cambias al editor experto.

Entonces, lo que quieres en el editor para el campo genérico es algo así:

[cred_generic_field type='email' field='generic-email']
{
"required":0,
"default":"[types field='academia-email-field' output='raw'][/types]",
"persist":1
}
[/cred_generic_field]

Ahora debe ser posible seleccionar este campo para mandar una notificación (pantallazo).

#2044769

Pero estos son formularios son para crear o editar entradas ¿no? Como puedo hacer formularios de contacto genéricos?¿

#2044863

Nigel
Supporter

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

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

Pues, los formularios de Toolset no están pensado en este, los formularios siempre publican (ó editan) una entrada.

Para formularios de contacto sea necesario crear una CPT deshechable que publican una entrada que luego puedes tirar.

#2044969

He creado un CPT llamado formulario de contacto y generado mediante Forms un formulario que crea una entrada cada vez, ahora vuelvo a la duda inicial, el formulario aparece en cada página de curso, el campo email al que se debe enviar es el campo email de la academia.
Tengo creada una relación 1 Academia - X cursos, pero ninguna relación con los formularios de momento (entiendo que debería ser 1 Curso - X Formularios)
Lo que necesito conseguir es que cada formulario tenga por un lado el email de contacto de la academia para enviarle notificación y que guarde el curso en el que se ha enviado.
Ademas he visto que no hay opción para añadir validación mediante check de las políticas de privacidad antes de enviar el formulario.

#2044987

Nigel
Supporter

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

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

Si metes un formulario de publicar "formularios de contacto" en la plantilla de cursos entonces el contexto (de entrada) en el formulario es el curso corriente.

Puedes hacer una prueba y en el formulario incluir el shortcode de mostrar el título de entrada (wpv-post-title). Saldrá el título del curso corriente. En el modo experto si usas el botón "Campos y vistas" para insertar este shortcode, verás que puedes especificar otra entrada como fuente, incluso una entrada padre al corriente.

El shortcode tendrá un atributo "item", así:

[wpv-post-title item="@relationship-slug.parent"]

Puedes usar el mismo para llegar hasta el campo de email del padre que vas a usar para el valor por defecto del campo genérico de email, así:

[cred_generic_field type='email' field='generic-email']
{
"required":0,
"default":"[types field='academia-email-field' output='raw' item='@relationship-slug.parent'][/types]",
"persist":1
}
[/cred_generic_field]

(Tendrás que editar el slug de la relación.)