The change_locale WordPress PHP action fires when the locale is switched to or restored.
Usage
add_action('change_locale', 'my_custom_function'); function my_custom_function($locale) { // your custom code here }
Parameters
- $locale (string) – The new locale.
More information
See WordPress Developer Resources: change_locale
Examples
Display a message when the locale is changed
In this example, a message is displayed when the locale is changed.
add_action('change_locale', 'display_locale_change_message'); function display_locale_change_message($locale) { echo 'The locale has been changed to: ' . $locale; }
Update a custom language option
In this example, a custom language option is updated whenever the locale changes.
add_action('change_locale', 'update_custom_language_option'); function update_custom_language_option($locale) { update_option('my_custom_language', $locale); }
Log the locale change
In this example, the locale change is logged to a custom log file.
add_action('change_locale', 'log_locale_change'); function log_locale_change($locale) { error_log('Locale changed to: ' . $locale, 3, '/path/to/custom.log'); }
Send an email when the locale is changed
In this example, an email is sent to the site administrator when the locale is changed.
add_action('change_locale', 'send_email_on_locale_change'); function send_email_on_locale_change($locale) { $to = get_option('admin_email'); $subject = 'Locale changed on ' . get_bloginfo('name'); $message = 'The locale has been changed to: ' . $locale; wp_mail($to, $subject, $message); }
Change the date format based on the locale
In this example, the date format is updated based on the new locale.
add_action('change_locale', 'update_date_format_based_on_locale'); function update_date_format_based_on_locale($locale) { if ($locale == 'en_US') { update_option('date_format', 'F j, Y'); } elseif ($locale == 'de_DE') { update_option('date_format', 'j. F Y'); } }