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

Sign up or log in

Sign up using Google Sign up using Facebook Sign up using Email and Password

Post as a guest

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.

You Might Also Like