Atenção!

Este artigo contém código PHP e destina-se a desenvolvedores. Oferecemos este código como uma cortesia, mas não fornecemos suporte para personalizações de código ou desenvolvimento de terceiros.

Para orientação extra, consulte o tutorial do WPBeginner sobre como adicionar código personalizado.

Dispensar

Como Criar uma Lista Negra Global

Visão geral

Você tem interesse em estabelecer uma lista global de bloqueio em nível de domínio que se aplique a todos os seus formulários? Criar essa lista garantirá que quaisquer e-mails de spam previamente sinalizados sejam bloqueados universalmente em todos os seus WPForms por meio de uma função única e unificada.

Por padrão, usando a Lista de Permissões ou a Lista de Bloqueio, você pode facilmente bloquear domínios para cada formulário usando *@dominio-ruim.com. Para saber mais sobre como configurar uma Lista de Permissões ou Lista de Bloqueio, consulte este guia útil.

No entanto, o objetivo principal deste tutorial é estabelecer uma lista global, eliminando a necessidade de edições individuais em cada formulário. Aproveitando os recursos do PHP, a construção de tal lista se torna um processo simples e rápido, como demonstraremos neste tutorial!

Adicionando o snippet

Agora é hora de adicionar o snippet ao nosso site e personalizar a lista com os nomes de domínio que queremos bloquear. Simplesmente copie e cole este snippet em seu site.

Para qualquer ajuda sobre como e onde adicionar snippets ao seu site, por favor, revise este tutorial.

/*
 * Global denylist for domains on all WPForms.
 *
 * @link https://wpforms.com/developers/how-to-create-a-global-denylist/
*/
 
function wpf_dev_blacklist_global_domains( $field_id, $field_submit, $form_data ) {
 
    // Find the domain name, anything after the @ symbol
    $domain          = substr( strrchr( $field_submit, "@" ), 1 );
 
    // Add the domains here, separated by commas
    $blacklist       = array( 'deny.com', 'nope.com' );
 
    // Customize the error message that will be shown 
    if( in_array( $domain, $blacklist ) ) { 
        wpforms()->process->errors[ $form_data[ 'id' ] ][ $field_id ] = esc_html__( 'We apologize, this domain is not accepted.', 'wpforms' );
        return;
    }
}
add_action('wpforms_process_validate_email', 'wpf_dev_blacklist_global_domains', 10, 3 );

Este snippet analisará o nome de domínio inserido no campo de e-mail e o verificará em relação à lista global que você criou neste snippet. Os nomes de domínio podem ser listados no formato [email protected]. Mas cada domínio é listado com aspas simples e, em seguida, separado por uma vírgula.

Quando qualquer usuário tentar inserir esse domínio e enviar o formulário, ele verá o erro.

usando este snippet você pode facilmente criar uma lista global de bloqueio

E é isso! Você criou com sucesso uma lista global de bloqueio para todos os seus WPForms. Gostaria também de bloquear palavrões em seus formulários? Dê uma olhada em nosso tutorial sobre Como Bloquear Envios de Formulários Contendo Palavrões.

Referência de Ação: wpforms_process_validate_email