Question

I would like to run a function when the user clicks the "Empty Trash" button for posts. Something like:

add_action('empty_trash','myFunction');
function myFunction(){
// My code
}
Was it helpful?

Solution

I don't think there exist one, but you could create your own, wpse_empty_trash, with something like this:

/**
 * Add a custom hook 'wpse_empty_trash'
 */
add_action( 'load-edit.php', function()
{
    add_action( 'before_delete_post', function ( $post_id )
    {
        if (
            'trash' === get_post_status( $post_id ) 
            && filter_input( INPUT_GET, 'delete_all' )
            && 1 === did_action( 'before_delete_post ' )
        )   
            do_action( 'wpse_empty_trash' );
    } );
} );

Then you can use it with your code. Example:

add_action( 'wpse_empty_trash', 'myFunction' );
function myFunction() {
    // My code
}

Hopefully you can adjust this to your needs.

OTHER TIPS

Yes.

https://developer.wordpress.org/reference/hooks/before_delete_post/

It’s important to note the hook runs only when the WordPress user empties the Trash. If you’re using this hook note that it will not fire if the user is deleting an Attachment, since attachments are force deleted, i.e., not sent to the Trash. Instead use the delete_post() hook.

Licensed under: CC-BY-SA with attribution
Not affiliated with wordpress.stackexchange
scroll top