Skip to main content

Invalidate locale-keyed caches when the operator changes supported languages

Free Beginner Since v1.0.0

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 );

Hooks Used