Resumo de IA
Interessado em melhorar a segurança dos seus formulários web? Com um simples trecho de PHP, pode efetivamente bloquear submissões de domínios específicos diretamente no campo de texto do seu formulário. Neste tutorial, vamos guiá-lo através do processo passo a passo de implementação desta funcionalidade, garantindo que os seus formulários permaneçam protegidos contra spam e submissões maliciosas.
Criação do formulário
Começaremos por criar um novo formulário. O nosso formulário é apenas um simples formulário de contacto onde lhes pediremos o nome, email e quaisquer comentários adicionais que desejem adicionar.
Para o 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 o nosso guia útil sobre como criar um novo formulário.
Bloquear os domínios
Agora é hora de adicionar o(s) nosso(s) trecho(s). Para qualquer assistência sobre como e onde adicionar trechos, por favor reveja 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 irá procurar no campo de formulário Texto de Parágrafo qualquer combinação das palavras mostradas dentro do preg_match e bloqueará a submissão do formulário se for verdadeiro.

Campo de Texto de Linha Única
Pode usar a mesma funcionalidade para o campo Texto de Linha Única com a mesma facilidade. O trecho será quase idêntico com a 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! Gostaria também de bloquear qualquer profanidade nestes campos? Consulte o nosso tutorial sobre Como Bloquear Submissões de Formulários Contendo Profanidade.
Ações de Referência
FAQ
P: Posso usar isto no campo de formulário de Texto Rico?
R: Absolutamente! 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 isto 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 ). Basta substituir _{$field_type} pelo tipo de campo.