如何在Gravity Forms中实现带审核状态标签的文件上传表单?
实现Gravity Forms文件上传字段的状态标签功能
1. 添加状态存储字段
- 在目标表单中新增一个隐藏字段,字段标签设为「审核状态」,默认值填
in progress,位置可放在文件上传字段前后任意位置,确保能随表单提交存储。
2. 前端渲染状态标签
将以下代码添加到主题的functions.php文件,或使用代码片段插件实现:
add_action( 'gform_field_before_input', 'add_upload_status_label', 10, 2 ); function add_upload_status_label( $field, $form ) { // 替换为你的文件上传字段ID(比如你的文件字段是ID 3,就把5改成3) if ( $field->id != 5 ) return; $status = 'in progress'; // 查看条目时获取存储的状态 if ( isset( $_GET['entry'] ) ) { $entry = GFAPI::get_entry( $_GET['entry'] ); // 替换为你的状态字段ID(比如状态字段是ID 4,就把6改成4) $status = rgar( $entry, '6' ); } // 编辑条目时获取提交的状态值 elseif ( isset( $_POST['input_6'] ) ) { $status = $_POST['input_6']; } // 状态对应的样式类 $status_classes = [ 'in progress' => 'status-in-progress', 'approved' => 'status-approved', 'rejected' => 'status-rejected' ]; $class = $status_classes[$status] ?? $status_classes['in progress']; $label_text = ucwords( $status ); echo '<div class="upload-status-label ' . $class . '">' . $label_text . '</div>'; }
再添加CSS样式到主题自定义CSS区域,优化标签显示效果:
.upload-status-label { padding: 4px 12px; border-radius: 4px; font-size: 14px; font-weight: 500; margin-bottom: 8px; display: inline-block; } .status-in-progress { background-color: #f0ad4e; color: #fff; } .status-approved { background-color: #5cb85c; color: #fff; } .status-rejected { background-color: #d9534f; color: #fff; }
3. 管理员审核修改状态
- 进入表单的「条目」页面,找到对应条目点击「编辑」。如果看不到状态字段,点击编辑页面右上角「选项」,勾选「显示隐藏字段」。
- 审核完文件后,直接修改状态字段的值为
approved或rejected,保存条目即可更新前端显示的状态标签。
4. 可选优化:简化审核操作
如果觉得手动输入状态值麻烦,可将隐藏字段改为下拉选择字段:
- 把原隐藏字段替换为下拉字段,选项设为
in progress、approved、rejected,默认值选in progress。 - 在字段「高级」设置中勾选「仅管理员可见」,用户提交表单时看不到该字段,管理员编辑条目时直接选择状态即可。
内容的提问来源于stack exchange,提问作者Ali
相关产品推荐
相关产品推荐

