The customize_save_{$id_base} WordPress PHP action fires when the WP_Customize_Setting::save() method is called. The dynamic portion, $id_base, refers to the base slug of the setting name.
Usage
add_action('customize_save_my_setting', 'my_custom_function');
function my_custom_function($setting) {
// Your custom code here
return $setting;
}
Parameters
$setting(WP_Customize_Setting): The WP_Customize_Setting instance.
More information
See WordPress Developer Resources: customize_save_{$id_base}
Examples
Update a color setting
Update a custom color setting when it’s saved in the Customizer.
add_action('customize_save_my_color_setting', 'update_my_color_setting');
function update_my_color_setting($setting) {
// Update color setting
$color = $setting->value();
set_theme_mod('my_color_setting', $color);
}
Log setting changes
Log changes to a specific setting when it’s saved in the Customizer.
add_action('customize_save_my_text_setting', 'log_my_text_setting_changes');
function log_my_text_setting_changes($setting) {
// Log setting changes
$old_value = get_theme_mod('my_text_setting');
$new_value = $setting->value();
if ($old_value !== $new_value) {
error_log('My Text Setting changed from ' . $old_value . ' to ' . $new_value);
}
}
Update custom CSS based on a setting
Update custom CSS when a specific setting is saved in the Customizer.
add_action('customize_save_my_font_size_setting', 'update_my_font_size_css');
function update_my_font_size_css($setting) {
// Update custom CSS based on the font size setting
$font_size = $setting->value();
$custom_css = "body { font-size: {$font_size}px; }";
wp_add_inline_style('my-theme-style', $custom_css);
}
Send an email when a setting is updated
Send an email to the site administrator when a specific setting is saved in the Customizer.
add_action('customize_save_my_email_setting', 'send_email_on_setting_update');
function send_email_on_setting_update($setting) {
// Send an email when the setting is updated
$new_value = $setting->value();
$to = get_option('admin_email');
$subject = 'My Email Setting Updated';
$message = 'The email setting was updated to: ' . $new_value;
wp_mail($to, $subject, $message);
}
Clear cache on setting update
Clear cache for a specific page when a setting is saved in the Customizer.
add_action('customize_save_my_cache_setting', 'clear_cache_on_setting_update');
function clear_cache_on_setting_update($setting) {
// Clear cache for the specific page
$page_id = $setting->value();
if (function_exists('wp_cache_clear_cache')) {
wp_cache_clear_cache($page_id);
}
}