如何通过可访问评论元数据的挂钩修改Wordpress评论输出?

时间:2019-05-18 06:41:19

标签: php wordpress woocommerce arguments hook-wordpress

我希望在我的Woo Commerce产品评论中添加一些元数据。

我的插件显示了客户正在评论哪个产品 variant ,我想将该信息添加到每个客户的评论(评论)中,并附上一小幅有关产品变化的缩略图img还有一点。

但是我很难找到要使用的过滤器/挂钩。

我已经尝试过这个了...

add_filter( 'comment_text', function( string $comment_text ) {

    $comment_text = '<p>Comment text injection</p>' . $comment_text;

    return $comment_text;
});

它可以工作,但是问题是,它没有提供太多上下文...我需要注释ID,以便可以获取有关该注释的一些元数据。

文档说此过滤器可以将WP_Comment obj与该过滤器一起传递...但是在我看来,这不会发生。

https://developer.wordpress.org/reference/hooks/comment_text

有关可用的钩子/过滤器的任何建议-我真的不想开始修改注释模板。

1 个答案:

答案 0 :(得分:1)

comment_text过滤器挂钩允许3个函数参数(因此您错过了其中2个):

  • $comment_text(字符串),主要的过滤参数
  • $comment(对象),当前的WP_Comment对象实例
  • $args(数组),一个参数数组

因此在此挂钩函数中,以下是针对订购说明的示例,例如:

add_filter( 'comment_text', 'customizing_comment_text', 20, 3 );
function customizing_comment_text( $comment_text, $comment, $args ) {
    if( $comment->comment_type === 'review' ) {
        $comment_text = '<p>Comment text injection</p>' . $comment_text;
    }
    return $comment_text;
}

代码进入活动子主题(或活动主题)的functions.php文件中。经过测试和工作。

enter image description here


要获取特定的评论元数据,您将使用以下功能get_comment_meta()

$meta_value = get_comment_meta( $comment->comment_ID, 'your_meta_key', true );

要添加特定的评论元数据,您将使用以下功能add_comment_meta()

add_comment_meta( $comment_id, 'your_meta_key', $meta_value, $unique );