Language_Pack_Upgrader::async_upgrade()
Asynchronously upgrades language packs after other upgrades have been made.
Hooked to the upgrader_process_complete action by default.
Method of the class: Language_Pack_Upgrader{}
Hooks from the method
Return
null
. Nothing (null).
Usage
$result = Language_Pack_Upgrader::async_upgrade( $upgrader );
- $upgrader(false|WP_Upgrader)
- WP_Upgrader instance or false. If $upgrader is a Language_Pack_Upgrader instance, the method will bail to avoid recursion. Otherwise unused.
Default: false
Changelog
Since 3.7.0 | Introduced. |
Language_Pack_Upgrader::async_upgrade() Language Pack Upgrader::async upgrade code WP 6.6.2
public static function async_upgrade( $upgrader = false ) { // Avoid recursion. if ( $upgrader && $upgrader instanceof Language_Pack_Upgrader ) { return; } // Nothing to do? $language_updates = wp_get_translation_updates(); if ( ! $language_updates ) { return; } /* * Avoid messing with VCS installations, at least for now. * Noted: this is not the ideal way to accomplish this. */ $check_vcs = new WP_Automatic_Updater(); if ( $check_vcs->is_vcs_checkout( WP_CONTENT_DIR ) ) { return; } foreach ( $language_updates as $key => $language_update ) { $update = ! empty( $language_update->autoupdate ); /** * Filters whether to asynchronously update translation for core, a plugin, or a theme. * * @since 4.0.0 * * @param bool $update Whether to update. * @param object $language_update The update offer. */ $update = apply_filters( 'async_update_translation', $update, $language_update ); if ( ! $update ) { unset( $language_updates[ $key ] ); } } if ( empty( $language_updates ) ) { return; } // Re-use the automatic upgrader skin if the parent upgrader is using it. if ( $upgrader && $upgrader->skin instanceof Automatic_Upgrader_Skin ) { $skin = $upgrader->skin; } else { $skin = new Language_Pack_Upgrader_Skin( array( 'skip_header_footer' => true, ) ); } $lp_upgrader = new Language_Pack_Upgrader( $skin ); $lp_upgrader->bulk_upgrade( $language_updates ); }