如何基于Gravity Forms复选框条件逻辑自动创建第二条表单提交条目
Gravity Forms 自动生成第二条提交条目实现方案
前置准备
- 记录你的竞赛表单ID(可在GF表单列表页查看)
- 记录「您是否为乳腺癌幸存者?」字段的ID(编辑表单时点对应字段,右侧设置栏可查看字段ID)
- 确认自动生成的第二条条目要提交到的目标表单ID,和原表单相同则直接复用上述表单ID
实现代码
将以下代码添加到WordPress站点当前主题的functions.php文件,或者自定义功能插件的代码文件中:
// 把下面的12替换成你自己的竞赛表单ID add_action( 'gform_after_submission_12', 'auto_create_second_entry_for_survivor', 10, 2 ); function auto_create_second_entry_for_survivor( $entry, $form ) { // 防止重复触发:如果是我们自动提交的请求,直接终止运行避免无限循环 if ( isset( $_POST['_is_duplicate_submit'] ) && $_POST['_is_duplicate_submit'] == 1 ) { return; } // 把下面的5替换成「您是否为乳腺癌幸存者?」的字段ID,'是'替换成你字段对应的选项值 $is_survivor = rgar( $entry, '5' ); if ( $is_survivor != '是' ) { return; } // 构造要提交的字段数据,字段ID对应替换成你自己表单的字段ID $submitted_data = array( // 示例:'字段ID' => 原提交对应字段的值,按你的表单字段按需增减 '1' => rgar( $entry, '1' ), // 姓名 '2' => rgar( $entry, '2' ), // 联系电话 '3' => rgar( $entry, '3' ), // 联系邮箱 // 可选:添加特殊标记区分自动生成条目 '6' => '自动生成:乳腺癌幸存者竞赛额外条目', // 假设6是备注字段ID ); // 附加防循环标记 $submitted_data['_is_duplicate_submit'] = 1; // 提交表单,把12替换成目标表单ID $submission_result = GFAPI::submit_form( 12, $submitted_data ); // 可选:提交失败时记录日志,开启WP_DEBUG后可在debug.log查看 if ( is_wp_error( $submission_result ) ) { error_log( '自动生成条目失败:' . $submission_result->get_error_message() ); } }
配置修改说明
- 代码中所有标注需要替换的ID、选项值,必须和你实际表单的配置保持一致
- 单选/下拉字段的取值要和你后台设置的选项值完全匹配,包括文字、大小写
- 按你实际需要保留的字段,调整
$submitted_data数组里的键值对,不需要同步的字段可以直接删除对应行
测试注意事项
- 首次部署前先在站点测试环境验证,确认不会触发无限提交、字段值同步正确后再上线到生产环境
- 可在GF的条目列表页,通过你添加的备注标记快速筛选自动生成的条目
内容的提问来源于stack exchange,提问作者dynamicad
相关产品推荐
相关产品推荐

