1

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

我的插件显示了客户正在审查的产品变体,我想将该信息添加到每个客户的评论(评论)中,并带有产品变体的小缩略图 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

关于可用的钩子/过滤器的任何建议 - 我真的不想开始破解评论模板。

4

1 回答 1

3

过滤器comment_text钩子允许 3 个函数参数(所以你错过了其中的 2 个):

  • $comment_text(字符串),主要过滤参数
  • $comment(object),当前的WP_CommentObject 实例
  • $args(array),参数数组

所以在这个钩子函数中,这里有一个针对订单注释的示例,例如:

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 文件中。测试和工作。

在此处输入图像描述


要获取特定的评论元数据,您将使用如下函数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 );
于 2019-05-18T09:36:24.510 回答