Gravity Forms通用过滤器更新字段值失败求助
解决Gravity Forms通用字段值过滤器失效问题
你遇到的问题出在两个关键点上:
$form参数类型判断错误:gform_addon_field_value过滤器里的$form是完整的表单对象(或数组,取决于Gravity Forms版本),不是字符串形式的ID,直接用$form == '18'永远不会匹配成功。- else分支错误覆盖所有字段:你的else分支强制返回"no",会把所有不匹配条件的字段值都改成"no",这不符合需求,应该返回原始的
$field_value,避免干扰其他字段。
修正后的代码如下:
add_filter( 'gform_addon_field_value', function ( $field_value, $form, $entry, $field_id ) { // 根据你的Gravity Forms版本选择对应判断方式 // 若$form是数组(旧版本),用$form['id'] // if ( $form['id'] == 18 && $field_id == 12 ) { // 若$form是对象(新版本),用$form->id if ( $form->id == 18 && $field_id == 12 ) { return "yes"; } // 其他情况返回原始字段值,不做修改 return $field_value; }, 10, 4 );
额外提醒:表单ID和字段ID建议用数字类型做比较,避免字符串类型转换带来的意外问题。
内容的提问来源于stack exchange,提问作者Nishad
相关产品推荐
相关产品推荐

