function genesis_upgrade() { // Don't do anything if we're on the latest version. if ( genesis_get_db_version() >= PARENT_DB_VERSION ) { return; } global $wp_db_version; // If the WP db hasn't been upgraded, make them upgrade first. if ( (int) get_option( 'db_version' ) !== (int) $wp_db_version ) { wp_safe_redirect( admin_url( 'upgrade.php?_wp_http_referer=' . rawurlencode( wp_unslash( esc_url( $_SERVER['REQUEST_URI'] ) ) ) ) ); exit; } $version_map = genesis_get_config( 'update-versions' ); foreach ( $version_map as $version ) { if ( version_compare( genesis_get_db_version(), $version, '<' ) ) { $upgrader_class = "\StudioPress\Genesis\Upgrade\Upgrade_DB_{$version}"; if ( ! class_exists( $upgrader_class ) ) { continue; } $upgrader = new $upgrader_class(); if ( ! $upgrader instanceof \StudioPress\Genesis\Upgrade\Upgrade_DB_Interface ) { continue; } $upgrader->upgrade(); } } // UPDATE DB TO LATEST VERSION. if ( genesis_get_db_version() < PARENT_DB_VERSION ) { genesis_upgrade_db_latest(); } // Clear the cache to prevent a redirect loop in some object caching environments. wp_cache_flush(); wp_cache_delete( 'alloptions', 'options' ); /** * Fires after upgrade processes have completed. * * @since 1.0.1 */ do_action( 'genesis_upgrade' ); }