Está interessado em aumentar a segurança dos seus formulários Web? Com um simples snippet PHP, pode bloquear eficazmente as submissões de domínios específicos diretamente no campo de texto do seu formulário. Neste tutorial, guiá-lo-emos através do processo passo-a-passo de implementação desta funcionalidade, garantindo que os seus formulários permanecem protegidos contra spam e submissões maliciosas.
Criar o formulário
Começaremos por criar um novo formulário. O nosso formulário é apenas um simples formulário de contacto onde pedimos que deixem o nome, o e-mail e quaisquer comentários adicionais que queiram acrescentar.
Para o nosso formulário de exemplo, adicionaremos os campos de formulário Nome, E-mail, Texto do parágrafo e Captcha personalizado (para segurança adicional).

Se precisar de ajuda, consulte o nosso guia útil sobre como criar um novo formulário.
Bloqueio dos domínios
Agora é hora de adicionar nosso(s) snippet(s). Para obter ajuda sobre como e onde adicionar snippets, consulte este tutorial.
Campo de texto de parágrafo
/**
* Block domains inside the Paragraph Text
*
* @link https://wpforms.com/developers/how-to-block-domains-from-your-text-fields/
*/
function wpf_dev_prevent_domains_textarea( $field_id, $field_submit, $form_data ) {
if ( preg_match( '/www.|.com|.net|.org|.co.uk/', $field_submit ) ) {
wpforms()->get( 'process' )->errors[ $form_data[ 'id' ] ][ $field_id ] = esc_html__( 'This is not allowed.', 'plugin-domain' );
}
}
add_action( 'wpforms_process_validate_textarea' , 'wpf_dev_prevent_domains_textarea', 10, 3 );
Este snippet vai olhar dentro do Texto do parágrafo para qualquer combinação das palavras apresentadas no interior do campo preg_match
e bloqueia o envio do formulário se for verdadeiro.

Campo de texto de uma linha
Também pode utilizar facilmente a mesma funcionalidade para o campo Texto de linha única. O snippet será quase idêntico, com exceção do nome do filtro.
/**
* Block domains inside the Single Line Text
*
* @link https://wpforms.com/developers/how-to-block-domains-from-your-text-fields/
*/
function wpf_dev_prevent_domains_text( $field_id, $field_submit, $form_data ) {
if ( preg_match( '/www.|.com|.net|.org|.co.uk/', $field_submit ) ) {
wpforms()->get( 'process' )->errors[ $form_data[ 'id' ] ][ $field_id ] = esc_html__( 'This is not allowed.', 'plugin-domain' );
}
}
add_action( 'wpforms_process_validate_text' , 'wpf_dev_prevent_domains_text', 10, 3 );
E é tudo o que precisa! Também gostaria de bloquear qualquer profanação nestes campos? Consulte o nosso tutorial sobre Como bloquear envios de formulários que contenham palavrões.
Acções de referência
FAQ
P: Posso utilizar isto no campo de formulário Rich Text?
R: Sem dúvida! Aqui está o snippet para o campo de formulário Rich Text.
/**
* Block domains inside the Rich Text
*
* @link https://wpforms.com/developers/how-to-block-domains-from-your-text-fields/
*/
function wpf_dev_prevent_domains_richtext( $field_id, $field_submit, $form_data ) {
if ( preg_match( '/www.|.com|.net|.org|.co.uk/', $field_submit ) ) {
wpforms()->get( 'process' )->errors[ $form_data[ 'id' ] ][ $field_id ] = esc_html__( 'This is not allowed.', 'plugin-domain' );
}
}
add_action( 'wpforms_process_validate_richtext' , 'wpf_dev_prevent_domains_richtext', 10, 3 );
P: Como posso aplicar isto a outros domínios?
A: Quase todos os campos têm algum tipo de validação. A maioria dos campos utiliza do_action( wpforms_process_validate_{$field_type}, $field_id, $field_submit, $form_data )
. Basta substituir _{$field_type}
com o tipo de campo.