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);