The gform_webhooks_request_data filter allows you to modify the webhook HTTP request data.
Usage
A generic example of using the filter for all forms:
add_filter('gform_webhooks_request_data', 'your_function_name', 10, 4);
To target a specific form, append the form ID to the hook name:
add_filter('gform_webhooks_request_data_7', 'your_function_name', 10, 4);
Parameters
- $request_data (array): HTTP request data.
- $feed (Feed Object): The current feed object.
- $entry (Entry Object): The current entry object.
- $form (Form Object): The current form object.
More information
See Gravity Forms Docs: gform_webhooks_request_data
Examples
Add a new field
This example adds a new field with a value ‘Tester McTesty’:
add_filter('gform_webhooks_request_data', 'modify_data', 10, 4);
function modify_data($request_data, $feed, $entry, $form) {
$request_data[1] = 'Tester McTesty';
return $request_data;
}
Modify the field keys
Replace the period in the input IDs with an underscore for webhooks to Automate.io:
add_filter('gform_webhooks_request_data', function($request_data, $feed) {
if (rgars($feed, 'meta/requestBodyType') === 'all_fields' && strpos(rgars($feed, 'meta/requestURL'), 'automate.io') !== false) {
foreach ($request_data as $key => $value) {
if (is_numeric($key)) {
$request_data['field ' . str_replace('.', '_', $key)] = $value;
unset($request_data[$key]);
}
}
}
return $request_data;
}, 10, 2);
Modify field values for the Events Calendar plugin
Change string field values to booleans as required by the Events Calendar plugin:
add_filter('gform_webhooks_request_data', function($request_data, $feed) {
$request_url = rgars($feed, 'meta/requestURL');
if (strpos($request_url, 'tribe/events/') !== false) {
$requires_bool_values = array('all_day', 'show_map', 'show_map_link', 'hide_from_listings', 'sticky', 'featured');
foreach ($request_data as $key => $value) {
if (in_array($key, $requires_bool_values)) {
$request_data[$key] = (bool)$value;
}
}
}
return $request_data;
}, 10, 2);
Remove empty values
Remove empty fields from the request data when the “all fields” choice is selected for the request body setting:
add_filter('gform_webhooks_request_data', function($request_data, $feed) {
if (rgars($feed, 'meta/requestBodyType') === 'all_fields') {
foreach ($request_data as $key => $value) {
if (empty($value)) {
unset($request_data[$key]);
}
}
}
return $request_data;
}, 10, 2);