Invalidate locale-keyed caches when the operator changes supported languages
LanguageSettingsController::update_settings() fires benecaster_supported_locales_updated( array $supported, string $primary, array $previous_supported, string $previous_primary ) after a successful save. Use to invalidate template-sync notices, refresh locale-keyed transient caches, or run a one-time backfill when a new language becomes supported.
Code
<?php
add_action( 'benecaster_supported_locales_updated', function ( array $supported, string $primary, array $prev_supported, string $prev_primary ) {
$added = array_diff( $supported, $prev_supported );
foreach ( $added as $locale ) {
do_action( 'my_addon_locale_added', $locale );
}
if ( $primary !== $prev_primary ) {
delete_transient( 'my_addon_primary_language_strings' );
}
}, 10, 4 );