The delete_option WordPress PHP action fires immediately before an option is deleted.
Usage
add_action('delete_option', 'your_function_name', 10, 1);
function your_function_name($option) {
// Your custom code here
}
Parameters
$option: string – Name of the option to delete.
More information
See WordPress Developer Resources: delete_option
Examples
Log deleted option
Log the option name when it’s deleted.
add_action('delete_option', 'log_deleted_option', 10, 1);
function log_deleted_option($option) {
error_log("Deleted option: " . $option);
}
Prevent deletion of specific option
Prevent the deletion of the ‘my_custom_option’ option.
add_action('delete_option', 'prevent_custom_option_deletion', 10, 1);
function prevent_custom_option_deletion($option) {
if ($option == 'my_custom_option') {
wp_die("You cannot delete 'my_custom_option'.");
}
}
Backup option before deletion
Backup the option value to a text file before it’s deleted.
add_action('delete_option', 'backup_option_before_delete', 10, 1);
function backup_option_before_delete($option) {
$option_value = get_option($option);
file_put_contents($option . "_backup.txt", $option_value);
}
Notify admin about deleted option
Send an email to the admin when a specific option is deleted.
add_action('delete_option', 'notify_admin_about_deleted_option', 10, 1);
function notify_admin_about_deleted_option($option) {
if ($option == 'important_option') {
$admin_email = get_option('admin_email');
wp_mail($admin_email, 'Important option deleted', 'The important_option has been deleted.');
}
}
Clear cache on option deletion
Clear the cache when an option related to cache settings is deleted.
add_action('delete_option', 'clear_cache_on_option_deletion', 10, 1);
function clear_cache_on_option_deletion($option) {
if (strpos($option, 'cache_settings_') === 0) {
// Clear cache code here
}
}