Using Gravity Forms "Gform_After_Submission" Filter Hook

I want to update the post and edit the value of an existing field with a sequence number after the entry has been created at gform_after_submission hook.

The requirement is to update a single field value in the same post and then update the post. I I found this documentation but not that helpful.

And tried the following but it's updating all the fields:

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; 
}
3

2 Answers

I think your logic is a bit off I would check IF it IS the right field rather than if it's not and do something like this:

    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;  }

You may be able to do it without the else and just return value once but if I remember right (and the docs show) both are needed.

Or you could do it with your current code:

    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; 

}

just make sure you return the value not just return the function

Here is a link to the correct docs page Also Gravity Forms has a support form of its own for users who have paid for the product. Lastly, Check out their example pastie

1

I solved the issue using the below code:

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;
    }   

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Sophia Al-Mansoor

Sophia Al-Mansoor

Global Business & E-Commerce Reporter

Sophia analyzes international trade, startup ecosystems, retail transformation, and supply chain logistics for modern digital publications.

Share this article
Twitter Facebook Pinterest