Descubra qual moderador aprovou o comentário?

11

Existe alguma maneira de descobrir quais moderadores aprovaram um comentário e depois exibir essas informações no front-end?

por exemplo

John diz: "Este é um ótimo artigo" - Aprovado pelo Admin1

James
fonte
1
Esse tipo de dados não é salvo nativamente. Portanto, você precisará começar a capturar e armazenar essas informações primeiro.
Rarst
suspiro eu pensei tão bem. Eu realmente preciso arranjar um desenvolvedor :( Obrigado pela ajuda Rarst!
James
1
@Rarst estaríamos falando enganchando em algo como: add_action('comment_unapproved_to_approved', 'comment_approved');
MartinJJ
@ Martin não tem idéia, não olhou para o código. Existem várias maneiras pelas quais os comentários são tratados (administrador, e-mails de notificação, XML-RPC) e não tenho certeza de como tudo isso pode ser conectado.
Rarst

Respostas:

8

Para registrar o moderador que aprova o comentário:

function wpse_comment_moderator_log( $comment ) {
    global $current_user;
    get_currentuserinfo();

    update_comment_meta( $comment->comment_ID, 'approved_by', $current_user->user_login );
}
add_action( 'comment_unapproved_to_approved', 'wpse_comment_moderator_log' );

Para exibi-lo após o texto do comentário:

function wpse_display_moderator( $comment_text, $comment ) {
    $approved_by = get_comment_meta( $comment->comment_ID, 'approved_by', true );
    if ( $approved_by ) {
        $comment_text .= " - Approved by $approved_by";
    }
    return $comment_text;
}
add_filter( 'comment_text', 'wpse_display_moderator', 99, 2 );
Hameedullah Khan
fonte
2
+1 @Hameedullah, eu estava apenas criando a função de exibição para o meu esforço .. reconfortante saber para um aluno como eu que minha função de gravação é quase exata para a sua, então eu estava no caminho certo ....
MartinJJ
2
Ainda bem que nós dois estamos no caminho certo, pois eu ainda sou um aprendiz.
Hameedullah Khan