Hoy tenía la necesidad de recoger parámetros GET de la URL de una página y ponerlos como campos ocultos en un formulario de Contact Form 7 para WordPress y resulta que existe esa posibilidad y está integrada en la propia solución.
Resulta que los campos de Contact Form 7 tienen un parámetro «default» que permite los valores «get«, «post» y «post_meta» y que permiten recoger los parámetros GET, POST o campos personalizados de la página y asignarlos al campo que estamos creando.
De este modo podemos poner:
[text* param_get default:get]
Y que recogerá el parámetro param_get de la URL y lo asignará a este campo con el mismo nombre.
Poniendo un ejemplo:
Queremos capturar el parámetro utm_source de la URL https://www.miservidor.com?utm_source=email para saber de dónde viene la visita. Para ello podemos incluir el siguiente campo:
[text* utm_source default:get]
Con este código tendremos de manera automática un campo «utm_source» con valor «email»
Tal vez, para este caso y muchos similares, sea mejor que no sea visible esta información en el formulario por lo que lo ideal sería que el campo fuera un campo oculto que trabajará del mismo modo:
[hidden* utm_source default:get]
En este caso quedará la información registrada y oculta al usuario que cumplimenta el formulario.
La misma operación se puede realizar con parámetros POST y campos personalizados