The pre_delete_site_option_{$option} WordPress action fires immediately before a specific network option is deleted. The dynamic portion of the hook name, $option
, refers to the option name.
Usage
add_action('pre_delete_site_option_{$option}', 'your_custom_function', 10, 2); function your_custom_function($option, $network_id) { // your custom code here }
Parameters
$option
(string) – Option name.$network_id
(int) – ID of the network.
More information
See WordPress Developer Resources: pre_delete_site_option_{$option}
Examples
Log deletion of a specific site option
This example logs when a specific site option, ‘my_custom_option’, is deleted.
add_action('pre_delete_site_option_my_custom_option', 'log_site_option_deletion', 10, 2); function log_site_option_deletion($option, $network_id) { error_log("Deleting site option '{$option}' for network ID {$network_id}"); }
Prevent deletion of a specific site option
This example prevents the deletion of the site option ‘my_protected_option’.
add_action('pre_delete_site_option_my_protected_option', 'prevent_site_option_deletion', 10, 2); function prevent_site_option_deletion($option, $network_id) { wp_die("You cannot delete the '{$option}' option."); }
Backup a specific site option before deletion
This example creates a backup of the ‘my_important_option’ site option before it’s deleted.
add_action('pre_delete_site_option_my_important_option', 'backup_site_option', 10, 2); function backup_site_option($option, $network_id) { $option_value = get_site_option($option); update_site_option("{$option}_backup", $option_value); }
Send a notification when a specific site option is deleted
This example sends an email notification to the site administrator when the ‘my_critical_option’ site option is deleted.
add_action('pre_delete_site_option_my_critical_option', 'notify_site_option_deletion', 10, 2); function notify_site_option_deletion($option, $network_id) { $admin_email = get_site_option('admin_email'); wp_mail($admin_email, "Site Option Deleted", "The '{$option}' site option has been deleted."); }
Perform an action based on the value of a specific site option before deletion
This example performs a custom action based on the value of the ‘my_status_option’ site option before it’s deleted.
add_action('pre_delete_site_option_my_status_option', 'custom_action_on_site_option_deletion', 10, 2); function custom_action_on_site_option_deletion($option, $network_id) { $option_value = get_site_option($option); if ($option_value === 'active') { // perform custom action when the option value is 'active' } }