Protegendo o nome de usuários registrados em seu WordPress

Esta modificação em seu WordPress irá checar se o nome ou e-mail usado pelo usuário que comenta sem estar logado é igual ao de algum usuário registrado nele.
Primeiro, teremos a checagem se o autor do comentário está logado. Se não estiver, o nome e email serão comparados com os registrados no banco de dados.  Se for igual, o comentário será bloqueado e uma mensagem escolhida por você será mostrada ao usuário.
Vale lembrar que o script é case-sensitive (Difere maíusculas de minúsculas). Esta modificação foi testada do WordPress 2.2 ao 2.7+

Instruções

1) Abra o arquivo /wp-comments-post.php para edição (um backup antes disso é sempre bem-vindo.. vai que algo dá errado) 2) Ache o seguinte trecho de código:

$comment_author       = trim(strip_tags($_POST['author']));
$comment_author_email = trim($_POST['email']);
$comment_author_url   = trim($_POST['url']);
$comment_content      = trim($_POST['comment']);

3) Depois do trecho acima, adicionem o trecho de código que temos logo abaixo:

// get list of user (display) names for blog
global $wpdb;
$valid_users = (array)$wpdb->get_results("
  SELECT display_name, user_email FROM " . $wpdb->prefix . "users");

// get ID of logged in user (if there is one)
global $userdata;
get_currentuserinfo();
$logged_in_name = $userdata->ID;
$logged_in_email = $userdata->user_email;

// see if the comment author matches an existing author
$found_match = FALSE;
foreach ($valid_users as $va) {

  if (trim($va->display_name) != '') {
    if (strtolower($va->display_name) == strtolower($comment_author)) {
      $found_match = TRUE;
      break;
    }
  }
  if (trim($va->user_email) != '') {
    if (strtolower($va->user_email) == strtolower($comment_author_email)) {
      $found_match = TRUE;
      break;
    }

  }
}

// if commenter is not logged in, but match was found, block the comment
if (trim($logged_in_name) == '') {
  if ($found_match == TRUE) {

wp_die( __('Voce nao pode deixar comentários com o nome ou email de um
 usuário registrado no site.

 Caso seja você mesmo, efetue seu login.') );

  }
}

4) Salve o arquivo e o feche

Notas

Para testar esta modificação, simplesmente se desconecte e tente postar um comentário usando o nome de usuário ou e-mail que você mesmo tem registrado. Se quiser alterar a mensagem exibida, altere o texto entre aspas na seguinte linha:

wp_die( __('Voce nao pode deixar comentários com o nome ou email de um
 usuário registrado no site.

 Caso seja você mesmo, efetue seu login.') );

Posts Similares

  • WordPress filters – Lista completa de filtros!

    WordPress filters – Lista completa de filtros!

    Esta lista de dicas explora um conceito fundamental no desenvolvimento do WordPress: filtros! No WordPress, os filtros permitem que os desenvolvedores interceptem e modifiquem dados à medida que uma página do WordPress está sendo carregada, antes de enviá-los ao navegador ou salvá-los no banco de dados. Você pode ler mais sobre filtros neste artigo em…

  • Corrigindo o erro ‘Allowed memory size Exhausted’ no WordPress

    Um pequenho hackzinho que pode ajudar aqueles que passaram pelo mesmo problema que passamos por aqui. Ao atualizar nosso site para o WordPress 2.8 (após um lógico backup de tudo), a seção administrativa do site apresentava a seguinte mensagem de erro: Fatal error: Allowed memory size of 33554432 bytes exhausted (tried to allocate 2348617 bytes)…

  • Prós e contras de se utilizar um Tema Premium (pago) para WordPress

    Muitas pessoas na comunidade open source acreditam que os temas pagos para WordPress fazem uma cobrança desleal e são uma tentativa de pessoas gananciosas para alimentar a formação de suas empresas e negócios em projetos de código aberto. Temos outra visão por aqui, vamos a ela. Temas Premium são contribuições para um projeto de código…

  • Diferença entre WordPress.org e WordPress.com

    Toda vez que dou uma palestra em algum canto do Brasil falando sobre WordPress e os benefícios de se usar esta fantástica ferramenta de gerenciamento de conteúdo para gerenciar seu site/blog, busco deixar clara a diferença entre os dois modelos disponíveis para o uso do WordPress: WordPress.org e WordPress.com. Sobre o WordPress.org Quando ministro tais…

  • Customizando a página de login de seu WordPress

    Customizando a página de login de seu WordPress

    Muitos procuram como personalizar as páginas de login do WordPress, e isso é possível com um pouco de CSS e uma função para adicionar tal CSS nas páginas corretas. São apenas alguns passos, vamos a eles!

  • Evite que seu WordPress de dicas aos invasores!

    Já reparou que na página de login de seu WordPress, quando você erra o login ou a senha o sistema avisa o que você errou ? Tudo bem, é um recurso até bacana, simpático… mas também é uma ótima dica para os invasores ! Com isso, eles poderão saber aonde estão errando na hora de…

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

3 Comentários