The delete_blog WordPress PHP action fires before a site is deleted.
Usage
add_action('delete_blog', 'my_custom_delete_blog_function', 10, 2); function my_custom_delete_blog_function($site_id, $drop) { // your custom code here }
Parameters
$site_id
(int): The site ID.$drop
(bool): True if the site’s table should be dropped. Default false.
More information
See WordPress Developer Resources: delete_blog
Examples
Log site deletion
Log the deletion of a site in a custom log file.
function log_site_deletion($site_id, $drop) { $log_message = "Site ID {$site_id} was deleted."; error_log($log_message, 3, "/var/www/html/site_deletion.log"); } add_action('delete_blog', 'log_site_deletion', 10, 2);
Send email notification
Send an email notification to the administrator when a site is deleted.
function notify_admin_on_site_deletion($site_id, $drop) { $admin_email = get_option('admin_email'); $subject = "A site was deleted"; $message = "Site ID {$site_id} was deleted."; wp_mail($admin_email, $subject, $message); } add_action('delete_blog', 'notify_admin_on_site_deletion', 10, 2);
Remove site’s uploaded files
Remove the uploaded files of the deleted site.
function remove_site_uploads($site_id, $drop) { $upload_dir = wp_upload_dir(); $site_upload_dir = $upload_dir['basedir'] . "/sites/{$site_id}"; if (file_exists($site_upload_dir)) { // Delete the site's upload directory rmdir($site_upload_dir); } } add_action('delete_blog', 'remove_site_uploads', 10, 2);
Remove site’s cache
Remove the cache related to the deleted site.
function clear_site_cache($site_id, $drop) { if (function_exists('wp_cache_delete_site')) { wp_cache_delete_site($site_id); } } add_action('delete_blog', 'clear_site_cache', 10, 2);
Add a custom event to Google Analytics
Track site deletion events in Google Analytics.
function track_site_deletion_event($site_id, $drop) { // Replace with your Google Analytics tracking code $tracking_code = "UA-12345678-1"; $site_url = get_site_url($site_id); // Send the event to Google Analytics $event_data = array( 'v' => '1', 'tid' => $tracking_code, 'cid' => mt_rand(100000, 999999), 't' => 'event', 'ec' => 'site_management', 'ea' => 'site_deleted', 'el' => $site_url, ); $url = 'https://www.google-analytics.com/collect'; wp_remote_post($url, array('body' => $event_data)); } add_action('delete_blog', 'track_site_deletion_event', 10, 2);