'ids', 'number' => self::SITE_BATCH_SIZE, 'offset' => $offset, 'orderby' => 'id', 'order' => 'ASC', ) ); foreach ( $site_ids as $site_id ) { switch_to_blog( $site_id ); try { call_user_func( $callback ); } finally { restore_current_blog(); } } $site_count = count( $site_ids ); $offset += self::SITE_BATCH_SIZE; } while ( self::SITE_BATCH_SIZE === $site_count ); } /** * Runs required upgrades once after a plugin version changes. * * @return void */ public static function maybe_upgrade() { $installed_version = (string) get_option( self::VERSION_OPTION, '' ); if ( '' !== $installed_version && version_compare( $installed_version, SHAPETRANSLATE_VERSION, '>=' ) ) { return; } /** * Fires before ShapeTranslate upgrades its core schema. * * @param string $installed_version Previously installed version. * @param string $target_version Version being installed. */ do_action( 'shapetranslate_before_upgrade', $installed_version, SHAPETRANSLATE_VERSION ); self::install(); /** * Fires after ShapeTranslate upgrades its core schema. * * @param string $installed_version Previously installed version. * @param string $target_version Installed version. */ do_action( 'shapetranslate_upgraded', $installed_version, SHAPETRANSLATE_VERSION ); } }