Resumo de IA
Interessado em aprimorar a segurança dos seus formulários web? Com um simples trecho de PHP, você pode efetivamente bloquear envios de domínios específicos diretamente no campo de texto do seu formulário. Neste tutorial, guiaremos você pelo processo passo a passo de implementação deste recurso, garantindo que seus formulários permaneçam protegidos contra spam e envios maliciosos.
Criando o formulário
Começaremos criando um novo formulário. Nosso formulário é apenas um formulário de contato simples onde pediremos que deixem o nome, e-mail e quaisquer comentários adicionais que desejarem.
Para nosso formulário de exemplo, adicionaremos os campos de formulário Nome, Email, Texto de Parágrafo e o Captcha Personalizado (para segurança adicional).

Se precisar de alguma assistência, por favor consulte nosso guia útil sobre como criar um novo formulário.
Bloqueando os domínios
Agora é hora de adicionar nossos trechos. Para qualquer assistência sobre como e onde adicionar trechos, por favor, revise 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 trecho procurará no campo de formulário Texto de Parágrafo qualquer combinação das palavras mostradas dentro do preg_match e bloqueará o envio do formulário se for verdadeiro.

Campo de Texto de Linha Única
Você pode usar a mesma funcionalidade para o campo Texto de Linha Única com a mesma facilidade. O trecho 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 você precisa! Gostaria também de bloquear qualquer palavrão nesses campos? Confira nosso tutorial sobre Como Bloquear Envios de Formulário Contendo Palavrões.
Ações de Referência
Perguntas Frequentes
P: Posso usar isso no campo de formulário de Texto Rico?
R: Com certeza! Aqui está o trecho para o campo de formulário Texto Rico.
/**
* 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?
R: 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} pelo tipo de campo.