Cuadro de selección Contact Form 7 con valor diferente al texto del contenido en la opción
¿Alguien sabe cómo puedo establecer un valor diferente en las opciones de selección en el plugin Contact Form 7? Aquí hay un ejemplo del HTML que me gustaría generar:
<select>
<option value="1">Mi coche</option>
<option value="2">Tu coche</option>
</select>
Parece que esto es compatible de forma nativa con Contact Form 7, simplemente no es muy obvio cómo hacer que funcione.
Aquí hay una página de documentación que explica la funcionalidad: http://contactform7.com/selectable-recipient-with-pipes/
Básicamente, todo lo que tienes que hacer es colocar los valores de la siguiente manera:
"Valor Visible|valor-real-del-formulario"
Lo que está antes del carácter de barra vertical |
se mostrará en el formulario, y lo que está después será el valor real que se enviará en el formulario.
¡Espero que esto ayude!

@SolomonClosson En realidad esto aún funciona; solo que es un poco raro. El HTML del formulario no muestra el valor 'crudo', pero como dice el enlace al final, puedes acceder a ellos con el prefijo _raw_
, por ejemplo _raw_TUCAMPO
en lugar de TUCAMPO
.

Esto funcionará solo en el lado del servidor. Según la documentación, esto es para evitar que los valores se envíen al cliente del navegador, así que si quieres acceder al valor de la opción con JavaScript (val() de jQuery) en lugar del texto de la opción (text() de jQuery), entonces usa la solución de Demilio.

¿cómo hacer eso si estoy usando el atributo "data" para llenar el select?

Para ver un ejemplo de implementación, mira aquí.

Esto funciona, pero no de la manera que el autor original esperaba. El autor original espera una solución en la que el elemento <select>
en el navegador contenga tanto el texto visible como el valor oculto, y cuando se envíe el formulario, el valor oculto se enviaría al servidor. La forma en que CF7 funciona realmente cuando usas el carácter de barra vertical es que solo construye el valor visible en el elemento <select>
, pero cuando el texto visible se envía con el formulario, CF7 luego reemplaza eso con el valor oculto antes de generar el correo electrónico o guardar la entrada.

Solucioné esto publicando primero el formulario estándar de Contact Form 7, luego copié el código fuente creado a partir de todos los shortcodes de Contact Form 7. Después, en lugar de usar el shortcode como la etiqueta select, usé una etiqueta select real con las opciones dentro. De esta manera pude usar el motor de Contact Form 7 y al mismo tiempo establecer mis propios valores-texto en las etiquetas option...
