✅ Notícias, temas e plug-ins da WEB e do WordPress. Aqui compartilhamos dicas e as melhores soluções para sites.

Guia Completo: Como preencher dinamicamente campos em formulários de gravidade

48

Construir formulários simples ou complexos no Gravity Forms é fácil e rápido. Uma das funcionalidades que o Gravity Forms oferece é permitir que você pré-selecione ou preencha condicionalmente os campos em um formulário. Isso é útil quando você tem o mesmo formulário em várias páginas de contato para cada departamento e deseja pré-selecionar o departamento correspondente no formulário. Ou você está incorporando um formulário de solicitação em páginas de produtos ou serviços e deseja preencher automaticamente as informações sobre o produto ou serviço atual em cada envio.

Você pode pré-selecionar ou pré-preencher dinamicamente os campos de várias maneiras, e também pode substituir dinamicamente as opções possíveis em um menu suspenso, botão de opção ou grupo de caixas de seleção. O campo que você preenche dinamicamente pode ser um campo visível que o usuário pode editar ou pode ser roteado para um campo oculto para que o leitor dos envios de formulários obtenha informações vitais.

As quatro maneiras de preencher campos dinamicamente

Neste guia, veremos quatro maneiras de preencher dinamicamente campos em um formulário Gravity Forms. Três deles você pode fazer sem tocar em nenhum código! Mas se você quiser modificar dinamicamente as opções possíveis em um select, grupo de botões de opção ou caixas de seleção, você precisará escrever algum código PHP. Veremos como fazer isso no final.

Você pode preencher campos dinamicamente por:

  • Adicionando informações extras na URL.
  • Forneça informações extras para o código de acesso incorporado do Gravity Forms.
  • Definindo informações extras para o Gravity Forms Block (se você estiver usando WordPress com Gutenberg).
  • Usando filtros com código PHP.

Mas primeiro precisamos ver como ativar a população dinâmica de um campo.

Ativando um campo para permitir população dinâmica

A primeira etapa, independentemente do método usado para preencher o campo, é ativá-lo no próprio campo.

Na edição do formulário, expanda o campo e dentro da aba "Avançado", você encontrará uma caixa de seleção "Permitir que o campo seja preenchido dinamicamente". Marque esta opção e uma nova entrada de texto aparecerá permitindo que você defina o nome do seu parâmetro. Isso pode ser o que você quiser, mas deve ser único e sem espaços.

Guia Completo: Como preencher dinamicamente campos em formulários de gravidade

Salve o formulário e ele estará pronto para você decidir qual método deseja usar para preenchê-lo.

Preenchendo dinamicamente a partir de parâmetros de URL

Você pode anexar parâmetros GET ao link da página que incorpora o formulário, por exemplo, se o link estiver dentro de outro texto de postagem ou for um link personalizado nos menus do WordPress.

Basta adicionar variáveis ​​de consulta em pares de valores-chave, com o nome do parâmetro como chave e seu valor como o que você deseja que seu valor seja. É possível adicionar vários pares de valores-chave se você quiser preencher vários campos no formulário, basta separar cada par com “&".

Assumindo que seu formulário existe nesta página: ” https://example.com/contact-me/“, e seu nome de parâmetro é awp_populate_meque você pode preencher o campo usando este URL: ” https://example.com/contact-me/?awp_populate_me=Hello“.

Lembre-se de que os URLs devem ser codificados corretamente. Por exemplo, você não pode simplesmente adicionar espaços ou caracteres especiais diretamente como valor do parâmetro. Fornecendo "Olá, mundo!" como valor seria ” Hello%20world%21“. Existem muitas ferramentas on-line para codificar URLs para você, se desejar seguir esse caminho.

Preenchendo dinamicamente a partir do shortcode

Todos os formulários são inseridos através de um shortcode. Você pode preencher campos dinamicamente diretamente dentro desse código de acesso. Este método pode ser útil se você estiver usando o mesmo formulário em várias postagens (por exemplo, registrando participantes para vários eventos ou cursos diferentes) e precisar fornecer algo exclusivo para saber de qual evento ou curso o formulário veio……

Normalmente, quando você incorpora um formulário, resulta em um shortcode parecido com este:[gravityforms id="1" title="Contact us"]

Edite o código de acesso e adicione o conjunto de chaves field_valuesa uma string que contém o nome do parâmetro igual ao valor desejado. Por exemplo, definir um parâmetro awp_populate_mepara ‘Hello World’ é feito assim:

[gravityforms id="1" title="Contact us" field_values="awp_populate_me=Hello World"]

Se você precisar preencher vários campos, adicione um “&” no meio, assim:

[gravityforms id="1" title="Contact us" field_values="awp_populate_me=Hello World&awp_another_field=Hello to you too"]

Preenchendo dinamicamente do Block in Gutenberg

Se você tiver GravityForms versão 2.4.13+ e WordPress com Gutenberg (WordPress 5+), você pode adicionar Gravity Forms como um bloco. Dentro deste bloco você tem um método para preencher campos também.

Adicione o bloco “Formulários” no Gutenberg e escolha o seu formulário. O bloco deve se transformar em uma visualização de formulário. No painel do lado direito, expanda Avançado e você encontrará uma área de texto chamada “Valores de campo”. Nesta área de texto, você pode digitar os nomes e valores dos seus parâmetros, assim como digitaria o shortcode. Ex.: ” awp_populate_me=Hello World!

Guia Completo: Como preencher dinamicamente campos em formulários de gravidade

Preenchendo dinamicamente a partir do código

E, finalmente, se você preferir preencher seus campos usando código PHP, existem filtros para isso. Você pode colocar este código no arquivo functions.php.

Como você codifica isso depende do tipo de campo; como você provavelmente pode adivinhar o preenchimento (substituindo todas as opções) em um select, caixas de seleção ou grupo de rádio devem ser tratados de forma diferente do que apenas preencher um único campo de texto.

Preenchendo um único campo de valor

O preenchimento de um campo que tenha um único valor (isso se aplica a campo de texto, área de texto, campo de email, campo de telefone e similares) é feito facilmente filtrando gform_field_value_<parameter name>. Em nosso exemplo:

add_filter('gform_field_value_awp_populate_me', function($value) { return 'Hello world!'; });

Você também pode usar esse filtro para pré-selecionar uma opção em um campo de vários valores, por exemplo, selecionar (lista suspensa), botões de opção ou caixas de seleção.

Preenchendo uma seleção ou botões de opção

Se você simplesmente estiver interessado em pré-selecionar uma opção, siga o guia acima para preencher um campo de valor único. Este código destina-se a personalizar ou substituir as opções possíveis que você obtém no campo.

Filtros de renderização de formulários do Gravity Forms

O gform_pre_renderfiltro nos permite modificar o formulário logo antes de ser exibido. Mas ao fazer alterações aqui, devemos garantir que nossas alterações sejam aplicadas em todos os casos; portanto, precisamos também conectar gform_admin_pre_render(filtro pré_render correspondente, mas afeta a edição de administrador/formulário), gform_pre_validation(responsável por validar o formulário antes do envio) e gform_pre_submission_filter(filtro após a validação, mas antes que a entrada seja salva). Não se preocupe, usamos a mesma função para todos esses filtros.

Você pode filtrá-los diretamente ou pode fornecer um sublinhado e o ID do formulário após o nome do filtro, para filtrar apenas um formulário específico. Por exemplo gform_pre_render_1, só seria executado em um formulário com o ID do formulário de 1.

Como argumento para todos esses filtros, você obtém o objeto de formulário, no qual pode obter o ID do formulário (método alternativo para adicionar o ID do formulário no filtro) e todos os seus campos. Os campos do formulário são um array de Fieldobjetos – mas tudo com o que precisamos nos preocupar é substituir a choicespropriedade correta do campo.

Mudando as escolhas

O tipo de dados com os quais você deseja substituir as escolhas depende inteiramente de você, mas a choicespropriedade de um campo precisa de uma matriz que tenha os elementos ‘texto’ e ‘valor’. Por exemplo ['text' => 'Hello World!', 'value' => '1', 'text' => 'Second choice', 'value' => '2'].

O código acima filtra apenas o ID do formulário de 1. Ele começa percorrendo os campos do formulário. É importante observar o “&” antes do elemento no loop, que o está passando por referência. Isso significa que, se fizermos alterações em $field, ele será aplicado e salvo diretamente no arquivo $form['fields'].

A segunda etapa é segmentar o campo que possui o nome do parâmetro que desejamos segmentar. Para cada campo esta é a inputNamepropriedade. Você pode usar outras formas de segmentação de campos, por exemplo, seu ID (id) ou classe CSS (cssClass). Quando encontramos nosso campo, precisamos gerar a matriz de substituição para as opções e definir $field->choicespara isso. No exemplo acima, consulto todas as páginas e percorro-as para gerar uma matriz formatada correta.

Não se esqueça de devolver o $formno final, pois este é um filtro.

Vale ressaltar que este filtro também se aplica ao formulário de edição (porque filtramos gform_admin_pre_render). Mas lembre-se de que você não pode mais manipular as opções na edição do formulário – ele simplesmente não salvará suas alterações porque esse código sempre as substituirá.

Preenchendo caixas de seleção

Vou mencioná-lo novamente; se você simplesmente estiver interessado em pré-selecionar uma caixa de seleção, siga o guia acima para preencher um campo de valor único. Quanto à substituição de todas as opções nas caixas de seleção, o processo é muito semelhante ao preenchimento de um botão de seleção ou de opção acima, mas com algumas pequenas diferenças. Eu recomendo examinar a explicação acima para selecionar e botões de opção primeiro.

Você usa os mesmos filtros e o processo de partida é o mesmo; você percorre os campos do formulário e encontra o que deseja. No entanto, com caixas de seleção, você precisa substituir duas propriedades no objeto de campo; choicese inputs. A choicespropriedade espera a mesma matriz que em um botão de seleção ou de opção.

A inputpropriedade espera um array com os elementos ‘ label‘ e ‘ id‘. O labelé auto-explicativo e deve ser idêntico ao textda matriz de opções. O idelemento precisa seguir as regras do Gravity Forms ID; concatenar o ID do campo, um ponto e o ID da escolha, começando com 1 (por exemplo, se o ID do campo for 2 e o ID da escolha for 3, o correto idé ” 2.3“).

Como os IDs de escolha precisam começar em 1, iniciamos uma variável de contador antes do loop e adicionamos 1 para cada elemento no loop, e usamos isso junto com o ID do campo e um ponto como idem inputsarray.

Quando temos nossos dois arrays, nós os configuramos nos campos choicese inputspropriedades, e retornamos o formulário modificado.

Fonte de gravação: awhitepixel.com

Este site usa cookies para melhorar sua experiência. Presumiremos que você está ok com isso, mas você pode cancelar, se desejar. Aceitar Consulte Mais informação