Aug 21 2007

Acentuando corretamente no Comment Email Responder

Arquivado em: Ferramentas

Atualização: a linha de assunto da mensagem continuava indo com caracteres estranhos; a inclusão de uma segunda linha extra de código resolve esse problema também.

Não é qualquer hospedagem de sites que tem o privilégio de que seja o seu dono ele próprio um blogueiro. Aliás, sorte têm os clientes da PortoFácil, na sua maioria blogueiros, que quando têm algum problema com o WordPress podem contar com o auxílio de quem entende e gosta do assunto.

Essa introdução serve para sugerir mais um hack para mais um plugin do WordPress. Dessa vez estamos falando do Comment Email Responder, um plugin extremamente útil que permite ao dono do blog em um único movimento responder a um comentário diretamente no blog, e ao mesmo tempo por e-mail, sem que para isso o leitor tenha sido obrigado a clicar na caixa de “assinar comentários” (que nem todo mundo usa).

O plugin funciona assim: você o instala e ativa normalmente, e na aba de opções vai ter mais uma página, com a configuração dele. Você vai informar seu nome real, o endereço de e-mail remetente da mensagem, personalizar a linha assunto, e inserir um rodapé fixo. Depois disso, sempre que o autor de um artigo ou o administrador entrar no site, vai haver um iconezinho ao lado do nome de cada autor de comentário. Quando clicado, esse ícone vai fazer com que uma cópia da resposta seja enviada para o e-mail cadastrado, automaticamente.

Lindo, né?

Só tinha um problema: os caracteres acentuados não funcionavam na versão original do plugin (coisa de gringo que só escreve em Inglês). E foi aí que eu entrei em ação: abri o fonte do plugin e consertei o problema. É uma gambiarra, mas das mais leves possíveis. Consiste apenas em acrescentar uma linha a mais no arquivo comment-email-responder.php.

Procure neste arquivo a linha em que é feito efetivamente o envio do e-mail. O trecho do código se parecerá com isso:
// Send the email.
mail($to, $subject, $body, $headers);

Imediatamente antes da chamada do mail() faremos a inclusão de mais uma linha duas linhas, que é são o hack propriamente dito. O trecho todo vai ficar assim:
// Send the email.
$body = utf8_decode($body);
$subject = utf8_decode($subject);
mail($to, $subject, $body, $headers);

O que estamos fazendo é apenas converter os dados que o WordPress envia para o servidor em formato UTF-8 para o formato nativo da função mail(), antes de enviar. Pronto, a acentuação vai funcionar que é uma beleza.


Textos relacionados a este:

7 Responses to “Acentuando corretamente no Comment Email Responder”

  1. Fabioon 21 Aug 2007 at 23:40

    E tu sempre salvando a pátria ;)

    [Reply]

  2. Sergio Grigolettoon 21 Aug 2007 at 23:44

    Tou falando…

    O Jango é cada dia mais essencial para muitos.

    Valeu Jânio!

    [Reply]

  3. Leia antes de votaron 23 Aug 2007 at 15:34

    [...] batuta, foi quem me orientou e ajudou no cadastro do Rec6 enquanto eu fui seu beta-teste nos acertos de uma extensão para o WordPress. Grande [...]

  4. João S. Magalhãeson 09 Oct 2007 at 06:26

    Excelente trabalho! Uma ajuda e tanto para os blogueiros iniciantes e também parea os veteranos que não conhecem PHP.

    [Reply]

  5. joelon 11 Jan 2008 at 17:54

    olá, intalei tudo certinho, mas nao vejo funcionar em meu tema

    o que será?

    [Reply]

  6. Dani Danczukon 21 Jan 2008 at 11:03

    Ainda não consegui fazer esse plugin funcionar =/ ele não gera o ícone nos comentários sozinho… Por favor me ajude!
    Obrigada!

    [Reply]

  7. Janio Sarmentoon 21 Jan 2008 at 14:24

    Gente, eu só dou suporte aos clientes da PortoFácil. Quem for cliente de outras hospedagens, por favor contate as respectivas em busca de ajuda.

    [Reply]

Trackback URI | Comments RSS

Leave a Reply

É proibida a reprodução do conteúdo deste site sem prévia autorização por escrito do autor. Citações de no máximo um parágrafo acompanhadas do link para o texto original são permitidas sem necessidade de autorização escrita.