Interessado em aumentar a segurança de seus formulários da Web? Com um simples snippet de PHP, você pode bloquear efetivamente os envios de domínios específicos diretamente no campo de texto do formulário. Neste tutorial, vamos orientá-lo no processo passo a passo de implementação desse recurso, garantindo que seus formulários permaneçam protegidos contra spam e envios mal-intencionados.
Criando o formulário
Começaremos criando um novo formulário. Nosso formulário é apenas um formulário de contato simples, no qual pediremos que os usuários deixem seu nome, 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 nosso guia útil sobre como criar um novo formulário.
Bloqueio de 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 );
Esse snippet examinará dentro do Texto do parágrafo para qualquer combinação das palavras mostradas dentro do campo de formulário preg_match
e bloqueia o envio do formulário se for verdadeiro.

Campo de texto de linha única
Você também pode usar 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 isso é tudo o que você precisa! Você também gostaria de bloquear qualquer profanação nesses campos? Confira nosso tutorial sobre Como bloquear envios de formulários que contenham palavrões.
Ações de referência
PERGUNTAS FREQUENTES
P: Posso usar isso no campo de formulário Rich Text?
R: Com certeza! 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 isso a outros campos?
A: Quase todos os campos têm algum tipo de validação. A maioria dos campos usará do_action( wpforms_process_validate_{$field_type}, $field_id, $field_submit, $form_data )
. Você apenas substituiria _{$field_type}
com o tipo de campo.