wp

Depois de capturar a lista dos emails de quem comentou no teu wordpress, chega a hora de disparar um email para essa gente toda.

Como o meu servidor é compartilhado, a sintaxe para importar csv direto no sql, não funcionou. Pois o meu usuário do banco não tem acesso a esse tipo de operação.

Caso o seu tenha, use o comando abaixo:

Direto no SQL

SELECT comment_author_email, comment_author
FROM  `wp_comments`
WHERE comment_author_email <>  ''
GROUP BY comment_author_email
ORDER BY (
comment_author_email )
INTO OUTFILE '/tmp/meuarquivo.csv'
FIELDS TERMINATED BY ';'
LINES TERMINATED BY '\n';

E se quiser apenas os comentários após uma certa data:

SELECT comment_author_email, comment_author FROM  `wp_comments`  WHERE comment_author_email <>  '' AND comment_date > '2013-04-13' GROUP BY comment_author_email ORDER BY ( comment_author_email ) INTO OUTFILE '/tmp/comments-2013-04-13.csv' FIELDS TERMINATED BY ';' LINES TERMINATED BY '\n';

No meu caso, eu tive que conectar no banco e gerar o .csv com programação server-side.

Usando PHP

<?php

$db = new mysqli('host', 'user', 'pass', 'bd');

$sql = "SELECT comment_author_email, comment_author
  FROM  `wp_comments`
  WHERE comment_author_email <>  ''
  GROUP BY comment_author_email
  ORDER BY (
    comment_author_email
  )";

$query = $db->query( $sql );
while( $dados = $query->fetch_object() ){
  $arr[] = "\"{$dados->comment_author}\", \"{$dados->comment_author_email}\"";
}

echo implode($arr, "\n");

Prontinho! feito. Dai foi só disparar um email para todo mundo, logicamente com o link de remover.

Se você frequenta meu blog, ou já comentou por aqui, provavelmente você recebeu também.