Atenção!

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

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

Ignorar

Como Criar uma Lista Negra Global

Visão geral

Tem interesse em estabelecer uma lista negra global ao nível do domínio que se aplique a todos os seus formulários? A criação de tal lista garantirá que quaisquer e-mails de spam previamente sinalizados sejam bloqueados universalmente em todos os seus WPForms através de uma função única e unificada.

Por defeito, utilizando a Lista de Permissões ou a Lista Negra, pode facilmente bloquear domínios para cada formulário utilizando *@mau-dominio.com. Para saber mais sobre como configurar uma Lista de Permissões ou Lista Negra, 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 as capacidades do PHP, a construção de tal lista torna-se um processo simples e rápido, como demonstraremos neste tutorial!

Adição do trecho de código

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

Para qualquer assistência sobre como e onde adicionar trechos ao seu site, por favor, reveja 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 trecho irá analisar o nome de domínio inserido no campo de e-mail e verificá-lo em relação à lista global que construiu neste trecho. Os nomes de domínio podem ser listados no formato [email protected]. Mas cada domínio é listado com aspas simples e depois separado por uma vírgula.

Quando qualquer utilizador tentar inserir esse domínio e submeter o formulário, verá o erro.

usando este trecho pode facilmente criar uma lista negra global

E é tudo! Criou com sucesso uma lista negra global para todos os seus WPForms. Gostaria também de bloquear profanidade nos seus formulários? Dê uma vista de olhos ao nosso tutorial sobre Como Bloquear Submissões de Formulários com Conteúdo Profano.

Referência de Ação: wpforms_process_validate_email