The gform_entry_ids_automatic_deletion filter allows you to modify the array of entry IDs before they are automatically deleted according to the personal data retention policy.
Usage
add_filter('gform_entry_ids_automatic_deletion', 'your_function_name', 10, 1);
Parameters
$entry_ids(array) – The array of entry IDs to delete.
More information
See Gravity Forms Docs: gform_entry_ids_automatic_deletion
Examples
Delete only entries in Trash
The following example limits entry deletion to entries in Trash, specifically for form ID 74.
add_filter('gform_entry_ids_automatic_deletion', 'save_entries', 10, 1);
function save_entries($entry_ids){
$delete_ids = array();
foreach ($entry_ids as $entry_id){
$entry = GFFormsModel::get_entry($entry_id);
// Save entries for form ID 74 that are not in the trash
if (!$entry['form_id'] == 74 || $entry['status'] == 'trash'){
$delete_ids[] = $entry_id;
GFCommon::log_debug('Deleting entry ' . $entry['id']);
} else {
GFCommon::log_debug('Not deleting entry ' . $entry['id']);
}
}
return $delete_ids;
}
Remove one entry from the deletion list
The following example removes entry ID 99 from the list of entries to be deleted.
add_filter('gform_entry_ids_automatic_deletion', function($entry_ids) {
GFCommon::log_debug('(): Excluding an entry from the deletion list.');
// Remove entry ID 99 from the deletion list.
unset($entry_ids['99']);
return $entry_ids;
});
Placement: This code should be placed in the functions.php file of your active theme.
Since: This filter was added in Gravity Forms version 2.4.
Source Code: This filter is located in GF_Personal_Data::cron_task() in includes/class-personal-data.php.