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

Gravity Forms对接Gravity Flow:工作流取消时修改字段数据问题求助

问题修复方案

核心错误点

  • 表单ID判断逻辑错误:代码中直接将数组类型的$form变量与字符串'14'比较,该判断永远返回假,内部的字段更新逻辑根本不会执行。正确的判断方式是读取表单数组的ID属性进行比对。
  • 接口参数传值不规范:GFAPI::update_entry_field第一个参数要求传入整数类型的条目ID,直接传入$entry数组在部分版本中无法被识别,建议明确传入条目的ID值。
  • 缺少边界校验:没有对条目有效性做判断,极端情况下可能出现异常报错。

修正后可运行代码

add_action( 'gravityflow_pre_cancel_workflow', 'sh_gravityflow_pre_cancel_workflow', 10, 3 );
/**
 * @param array $entry 当前提交条目
 * @param array $form 当前提交关联的表单
 * @param Gravity_Flow_Step $step 当前工作流步骤
 */
function sh_gravityflow_pre_cancel_workflow( $entry, $form, $step ) {
    // 仅处理ID为14的表单
    if ( rgar( $form, 'id' ) != 14 ) {
        return;
    }
    // 仅在条目有效时执行更新
    if ( ! is_array( $entry ) || empty( $entry['id'] ) ) {
        return;
    }
    // 更新ID为14的单行文本字段值为Flagged
    GFAPI::update_entry_field( $entry['id'], 14, 'Flagged' );
}

额外排查方向

如果部署后依然不生效,可以按以下顺序排查:

  1. 确认代码放在主题的functions.php文件或者自定义插件中,没有语法错误
  2. 检查对应工作流的取消权限配置,确保取消操作会触发对应钩子
  3. 确认要更新的字段ID确实为14,没有和步骤ID、表单ID混淆

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 00:30:02