如何为WooCommerce商品评论表格添加带内容的新列?
解决WooCommerce商品评论表格新列内容不显示的问题
你的问题确实出在钩子名称上。WooCommerce用于渲染评论表格列内容的钩子是动态钩子,格式为woocommerce_product_reviews_table_column_{$column_key},其中{$column_key}需要替换成你自定义列的键名(也就是你代码里的custom)。
你当前使用的woocommerce_product_reviews_table_column_缺少了列键后缀,导致钩子无法被正确触发,所以列内容无法显示。
修正后的完整代码
add_filter( 'woocommerce_product_reviews_table_columns', 'my_custom_reviews_column', 9999 ); function my_custom_reviews_column( $my_column ){ $new_column = array( 'custom' => 'Custom', ); // 在第3列后插入自定义列 $my_column = array_slice( $my_column, 0, 3, true ) + $new_column + array_slice( $my_column, 3, NULL, true ); return $my_column; } // 修正钩子名称,加上自定义列的键名custom add_action( 'woocommerce_product_reviews_table_column_custom', 'my_custom_column_content', 10, 2 ); function my_custom_column_content( $column, $product_id ){ // 这里可以根据需求替换成实际内容 echo 'test'; }
扩展说明
如果需要显示和当前评论相关的动态内容,可以通过全局变量$comment获取评论对象,示例如下:
add_action( 'woocommerce_product_reviews_table_column_custom', 'my_custom_column_content', 10, 2 ); function my_custom_column_content( $column, $product_id ){ global $comment; // 显示评论者昵称示例 echo $comment->comment_author; }
内容的提问来源于stack exchange,提问作者Mahdyar
相关产品推荐
相关产品推荐

