Fragen\GitHub_Updater\Language_Pack::pre_set_site_transient PHP Method

pre_set_site_transient() public method

Add language translations to update_plugins or update_themes transients.
public pre_set_site_transient ( $transient ) : mixed
$transient
return mixed
    public function pre_set_site_transient($transient)
    {
        $locales = get_available_languages();
        $locales = !empty($locales) ? $locales : array(get_locale());
        $repos = array();
        if (!isset($transient->translations)) {
            return $transient;
        }
        if ('pre_set_site_transient_update_plugins' === current_filter()) {
            $repos = Plugin::instance()->get_plugin_configs();
            $translations = wp_get_installed_translations('plugins');
        }
        if ('pre_set_site_transient_update_themes' === current_filter()) {
            $repos = Theme::instance()->get_theme_configs();
            $translations = wp_get_installed_translations('themes');
        }
        $repos = array_filter($repos, function ($e) {
            return isset($e->language_packs);
        });
        foreach ($repos as $repo) {
            foreach ($locales as $locale) {
                $lang_pack_mod = isset($repo->language_packs->{$locale}) ? strtotime($repo->language_packs->{$locale}->updated) : 0;
                $translation_mod = isset($translations[$repo->repo][$locale]) ? strtotime($translations[$repo->repo][$locale]['PO-Revision-Date']) : 0;
                if ($lang_pack_mod > $translation_mod) {
                    $transient->translations[] = (array) $repo->language_packs->{$locale};
                }
            }
        }
        $transient->translations = array_unique($transient->translations, SORT_REGULAR);
        return $transient;
    }