The delete_site_option WordPress PHP action fires after a network option has been deleted.
Usage
add_action('delete_site_option', 'your_custom_function', 10, 2); function your_custom_function($option, $network_id) { // Your custom code here }
Parameters
$option
(string): Name of the network option.$network_id
(int): ID of the network.
More information
See WordPress Developer Resources: delete_site_option
Examples
Log deleted network option
Log the deleted network option to a custom log file.
add_action('delete_site_option', 'log_deleted_network_option', 10, 2); function log_deleted_network_option($option, $network_id) { // Log the deleted network option error_log("Network Option '{$option}' has been deleted from Network ID: {$network_id}"); }
Send email notification
Send an email notification to the administrator when a specific network option is deleted.
add_action('delete_site_option', 'send_email_on_option_delete', 10, 2); function send_email_on_option_delete($option, $network_id) { if ($option === 'important_option') { // Send email to the administrator wp_mail('[email protected]', 'Important Option Deleted', 'The important_option has been deleted from Network ID: ' . $network_id); } }
Update related option
Update another option’s value based on the deletion of a specific network option.
add_action('delete_site_option', 'update_related_option', 10, 2); function update_related_option($option, $network_id) { if ($option === 'theme_color') { // Reset the related option update_site_option('theme_header_color', 'default'); } }
Trigger custom action
Trigger a custom action when a specific network option is deleted.
add_action('delete_site_option', 'trigger_custom_action_on_delete', 10, 2); function trigger_custom_action_on_delete($option, $network_id) { if ($option === 'custom_plugin_settings') { // Trigger custom action do_action('custom_plugin_settings_deleted', $network_id); } }
Clean up related data
Delete related data from the database when a network option is deleted.
add_action('delete_site_option', 'clean_up_related_data', 10, 2); function clean_up_related_data($option, $network_id) { if ($option === 'plugin_data') { // Delete related data global $wpdb; $wpdb->delete($wpdb->prefix . 'plugin_related_data', array('network_id' => $network_id)); } }