Categories: WordPress

WordPress – Select dinâmico no Contact Form 7

Rate this post

O Contact Form 7 é um dos plugins mais populares para criação de formulários de contato no WordPress. Para utilizá-lo, basicamente, você trabalhará utilizando shortcodes criados pelo plugin e inserindo-os nas suas páginas ou posts no WordPress. Isso faz com que aquele form seja exibido. O plugin cria shortcodes tanto para inserir o formulário nas páginas e posts como para inserir os campos dentro do próprio formulário.

Muitas vezes precisamos definir conteúdos personalizados em uma determinada opção, como no select por exemplo e fica inviável acessar toda hora as configurações do formulário para adicionar mais uma opção.

Para resolvemos essa questão podemos utilizar um filter.

Neste tutorial, a versão que estou utilizando do WordPress  4.5.3 e do Plugin Contact Form 7 é 4.4.2

Vamos simular a seguinte situação: Precisamos que as categorias de um post sejam mostrados num select e essas categorias sempre tem uma rotatividade de nomes. Então, não caberia neste exemplo adicionarmos manualmente as categorias nos formulários.

Então vamos utilizar o filtro wpcf7_form_tag do plugin e com ele criaremos uma atributo que quando inserido irá definir o nosso conteúdo personalizado.

Vamos adicionar no arquivo functions.php do tema uma função que será chamada pelo filtro do plugin.

Segue a função:

function create_dynamic_select_list($tag, $unused){
	$options    = (array)$tag['options'];
	$categories = false;
	$search      = 'options_categories';
	
	foreach ($options as $option) {
		if (preg_match("/^".$search."$/", $option, $matches)){
			$categories = true;
			break;
		} 
	}	
	
	if($categories){
		$terms = get_terms('category', array('hide_empty' => false));
		foreach($terms as $term){
			$tag['raw_values'][] = $term->name;  
			$tag['values'][] = $term->name;  
			$tag['labels'][] = $term->name;			
		}
	}
	return $tags;
}

1 = Define uma função que receberá 2 parâmetros;
2 = Seleciona as opções das tags;
3 = Define uma variável pra informar se opção que criamos existe;
4 = Define o nome do atributo que usaremos no formulário;
6 = Percorre as opções da tag do formulário;
7 = Verifica se existe o atributo que queremos;
8 = Se exibir, adicionar o valor para $categories como verdadeira;
9 = Para o loop;
13 = Verificar se a variável $categories é verdadeira;
14 = Seleciona todas as categorias;
15 = Percorre as categorias;
16,17 = Define o valor da opção;
18 = Define o valor que será exibido para usuário;
21 = retorna as tags.

Agora vamos informa em qual filtro queremos que seja executada essa função.

add_filter( 'wpcf7_form_tag', 'create_dynamic_select_list', 10, 2);

Pronto, agora é só usá-lo no Contact Form 7

Espero que tenham gostado, e até a próxima.

David CHC

Trabalha com desenvolvimento web há 10 anos, atuou como programador líder do MX Cursos por mais de 8 anos e hoje dedica-se exclusivamente à criação de cursos para a plataforma. Possui vasto conhecimento em PHP, Javascript, HTML5, CSS3, Gulp.js, GIT, MySQL

Ver comentários

  • Olá!

    Você tem uma dica de como eu faço para que, quando o usuário selecionar uma opção em um select, que em outro, ao lado, carregue as opções referente ao escolhido anteriormente? Seria mais ou menos aquilo de selecionar o estado e a aparecer as cidades referentes a UF escolhida.

    Como poderia fazer isso integrado ao Contact Form 7?

    Obrigada!

  • Muito bom!! Gostaria de saber se é possível direcionar para uma determinada categoria após o envio do formulário. A pessoa usa o select para selecionar a categoria que ela quer e após enviar o formulário é direcionada para uma certa página da categoria. É possível???

Posts recentes

O Futuro da Criação de Sites: Integração de IA e Design Gráfico

Nos últimos anos, testemunhamos uma revolução na forma como os sites são criados, impulsionada pelo…

1 mês atrás

Como a IA Está Revolucionando a Animação 3D

A animação 3D tem sido uma forma poderosa de contar histórias e criar experiências visuais…

1 mês atrás

Lista das 20 Melhores Inteligências Artificiais em 2024 para Criação de Imagens (Todas Gratuitas)

Nos últimos anos, a inteligência artificial (IA) tem revolucionado a forma como criamos e editamos…

1 mês atrás

O Papel da Inteligência Artificial na Criação de Sites com WordPress

Nos últimos anos, a integração da inteligência artificial (IA) na criação de sites tem revolucionado…

1 mês atrás

5 Tendências em Edição de Vídeo Impulsionadas pela Inteligência Artificial

Nos últimos anos, a edição de vídeo evoluiu rapidamente com o avanço da tecnologia, e…

1 mês atrás

O Papel Revolucionário da Inteligência Artificial na Dublagem de Filmes

A dublagem de filmes desempenha um papel fundamental na indústria cinematográfica, permitindo que obras de…

1 mês atrás

This website uses cookies.