1

gform_after_submission在挂钩创建条目后,我想更新帖子并使用序列号编辑现有字段的值。

要求是更新同一帖子中的单个字段值,然后更新帖子。我发现这个文档但没有那么有用。

并尝试了以下方法,但它正在更新所有字段:

add_filter( "gform_save_field_value", "set_field_value", 10, 4 ); 

function set_field_value( $value, $lead, $field, $form ){ 
    if( $form['id'] != 1 || $field['id'] != 19 ) 
        return; 

    $value = "xxx"; 
    return $value; 
}
4

2 回答 2

3

我认为你的逻辑有点偏离我会检查它是否是正确的字段而不是如果它不是并且做这样的事情:

    add_filter( "gform_save_field_value", "nifty_set_field_value", 10, 4 ); 

    function nifty_set_field_value( $value, $lead, $field, $form ){ 
    //make sure we are on form 1 AND field 19
    if( $form['id'] == 1 &&  $field['id'] == 19 ){
        //set value
        $value = "xxx";
        //return
        return $value; 
    } 
   //not our field, that's okay just return the normal value
   else {return $value;  }

您可能可以在没有 and 的情况下执行此操作,else并且只需返回一次值,但如果我没记错(并且文档显示)两者都是需要的。

或者你可以用你当前的代码来做:

    add_filter( "gform_save_field_value", "nifty_set_field_value", 10, 4 ); 

function nifty_set_field_value( $value, $lead, $field, $form ){ 
    if( $form['id'] != 1 || $field['id'] != 19 ) {
        return $value; 
}
$value = "xxx"; 
return $value; 

}

只需确保您返回值而不仅仅是返回函数

这是指向正确文档页面的链接此外,Gravity Forms为已购买该产品的用户提供了自己的支持表单。最后,看看他们的示例馅饼

于 2013-04-07T22:08:49.840 回答
0

我使用以下代码解决了这个问题:

add_filter("gform_get_input_value", "update_field", 10, 4);

    function update_field($value, $lead, $field, $input_id){
        if($lead["form_id"] == 1 && $field["id"] == 19)
            return 'xxx';
        else
            return $value;
    }

    add_filter("gform_save_field_value", "save_field_value", 10, 4);

    function save_field_value($value, $lead, $field, $form){
        if($lead["form_id"] == 1 && $field["id"] == 19)
            return 'xxx';
        else
            return $value;
    }   
于 2013-04-08T07:13:14.263 回答