Change the Delete Entry mode from “Delete” to “Trash”
The entry is permanently deleted when deleting it in GravityView ( see more here). If you want to have the entry moved to the trash instead, please use the code snippet below:
add_filter( 'gk/gravityview/delete-entry/mode', 'gk_delete_entry_mode_return_trash' );
function gk_delete_entry_mode_return_trash() {
return 'trash';
}How to only target a specific View
add_filter( 'gk/gravityview/delete-entry/mode', 'gk_delete_entry_mode_return_trash', 10, 3 );
/**
* Sets the delete mode to "trash" for specific Views, allowing permanent deletion from the Trashed Entries View.
*
* @param string $mode Delete mode: 'trash' or 'delete'. Default: 'delete'.
* @param array $entry The entry being deleted.
* @param int|null $view_id The View ID. Default: null.
*
* @return string The delete mode.
*/
function gk_delete_entry_mode_return_trash( $mode, $entry, $view_id ) {
if ( null === $view_id ) {
return $mode;
}
$view_id = (int) $view_id;
// For your main View(s): trash entries instead of deleting.
if ( in_array( $view_id, [ 123, 321 ], true ) ) {
return 'trash';
}
// Force deletion on Views where you want to permanently delete entries.
if ( 456 === $view_id ) {
return 'delete';
}
// Use the original mode (default: 'delete').
return $mode;
}For earlier versions of GravityView
If you wish to apply this setting to a specific View only instead of changing the mode for all Views, then use the code below by making sure to replace “123” with the ID of your View:
add_filter( 'gk/gravityview/delete-entry/mode', 'gk_delete_entry_mode_return_trash' );
function gk_delete_entry_mode_return_trash() {
$view = gravityview()->request->is_view();
if ( $view ) {
$view_id = $view->settings->get( 'id' );
if( $view_id == 123 ){ //Change 123 to your View ID
return 'trash';
}
}
return 'delete';
}How this code works
The plugin uses the gk/gravityview/delete-entry/mode filter to return a value of trash instead of the default, delete .
See how to add this code snippet to your website: Where to put code samples.