You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在WooCommerce中仅启用星级评分无需评论?现有代码提交无法保存

问题诊断与修复方案

你的代码确实缺失关键逻辑,导致WordPress评论验证失败,无法提交。原因是WordPress默认要求评论内容(comment_content)字段必须存在,哪怕是空值,否则会拦截提交请求。

修复步骤

1. 保留隐藏的评论内容字段(推荐)

修改comment_field,在星级评分后添加一个隐藏的textarea,确保comment_content字段被正常提交:

function filter_woocommerce_product_review_comment_form_args( $comment_form ) {
    if ( function_exists( 'WC' ) && is_product() ) {
        // 星级评分选择器 + 隐藏的评论内容字段
        $comment_form['comment_field'] = '<div class="comment-form-rating"><label for="rating">' . esc_html__( 'Your rating', 'your-theme-text-domain' ) . '</label><select name="rating" id="rating" required>
            <option value="">' . esc_html__( 'Rate&hellip;', 'your-theme-text-domain' ) . '</option>
            <option value="5">' . esc_html__( 'Perfect', 'your-theme-text-domain' ) . '</option>
            <option value="4">' . esc_html__( 'Good', 'your-theme-text-domain' ) . '</option>
            <option value="3">' . esc_html__( 'Average', 'your-theme-text-domain' ) . '</option>
            <option value="2">' . esc_html__( 'Not that bad', 'your-theme-text-domain' ) . '</option>
            <option value="1">' . esc_html__( 'Very poor', 'your-theme-text-domain' ) . '</option>
        </select></div>
        <textarea name="comment" id="comment" class="hidden" style="display:none;" required></textarea>';

        $comment_form['fields']['author'] = '';
        $comment_form['fields']['email'] = '';
        $comment_form['fields']['url'] = '';
        $comment_form['comment_notes_before'] = '';
        $comment_form['label_submit'] = esc_html__( 'Submit Review', 'your-theme-text-domain' );
        $comment_form['title_reply'] = esc_html__( 'Leave a Review', 'your-theme-text-domain' );
    }
    return $comment_form;
}
add_filter( 'woocommerce_product_review_comment_form_args', 'filter_woocommerce_product_review_comment_form_args' );

2. 可选:直接禁用评论内容必填验证

如果不想保留隐藏字段,可以通过钩子修改评论验证规则,跳过comment_content的必填检查:

// 跳过产品评论的内容必填验证
function skip_product_comment_content_check( $required_fields ) {
    if ( function_exists( 'WC' ) && is_product() ) {
        unset( $required_fields['comment'] );
    }
    return $required_fields;
}
add_filter( 'comment_form_required_fields', 'skip_product_comment_content_check' );

说明

  • 第一种方法更稳妥,兼容大多数主题和插件,不会破坏WordPress默认评论流程。
  • 第二种方法直接修改验证规则,适合完全不需要任何评论内容的场景,但需注意仅针对产品页面生效,避免影响其他类型的评论。

内容的提问来源于stack exchange,提问作者Parham

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.01 23:00:26