The gform_post_update_form_meta action fires after form meta has been updated for any form in Gravity Forms.
Usage
To apply this action to all forms:
add_action('gform_post_update_form_meta', 'your_function_name', 10, 3);
To target a specific form, append the form id to the hook name (format: gform_post_update_form_meta_FORMID):
add_action('gform_post_update_form_meta_1', 'your_function_name', 10, 3);
Parameters
- $form_meta (Form Object): The current form data.
- $form_id (int): The form id.
- $meta_name (string): The name of the meta updated.
More information
See Gravity Forms Docs: gform_post_update_form_meta
This action was added in Gravity Forms version 1.9. The source code is located in GFFormsModel::update_form_meta() in forms_model.php.
Examples
Send an email when form meta is updated
add_action('gform_post_update_form_meta', 'update_data', 10, 3);
function update_data($form_meta, $form_id, $meta_name) {
GFCommon::send_email('[email protected]', '[email protected]', '', '', 'Form ' . $form_id, 'Form Updated at ' . date('Y-m-d H:i:s'));
}
This example sends an email to a specified address when any form’s meta is updated. The email contains the form ID and the date and time of the update.
Log form updates to a file
add_action('gform_post_update_form_meta', 'log_form_updates', 10, 3);
function log_form_updates($form_meta, $form_id, $meta_name) {
$log_message = "Form {$form_id} updated: " . date('Y-m-d H:i:s') . "\n";
file_put_contents('form_updates.log', $log_message, FILE_APPEND);
}
This example logs form updates to a file named form_updates.log, including the form ID and the date and time of the update.
Update a custom post type on form meta update
add_action('gform_post_update_form_meta', 'update_custom_post_type', 10, 3);
function update_custom_post_type($form_meta, $form_id, $meta_name) {
$args = array(
'post_type' => 'your_custom_post_type',
'meta_key' => 'form_id',
'meta_value' => $form_id,
'numberposts' => 1
);
$custom_posts = get_posts($args);
if (!empty($custom_posts)) {
$post_id = $custom_posts[0]->ID;
update_post_meta($post_id, 'form_last_updated', date('Y-m-d H:i:s'));
}
}