MC4WP_Admin::init_upgrade_routines PHP Method

init_upgrade_routines() private method

Upgrade routine
private init_upgrade_routines ( )
    private function init_upgrade_routines()
    {
        // upgrade routine for upgrade routine....
        $previous_version = get_option('mc4wp_lite_version', 0);
        if ($previous_version) {
            delete_option('mc4wp_lite_version');
            update_option('mc4wp_version', $previous_version);
        }
        $previous_version = get_option('mc4wp_version', 0);
        // allow setting migration version from URL, to easily re-run previous migrations.
        if (isset($_GET['mc4wp_run_migration'])) {
            $previous_version = $_GET['mc4wp_run_migration'];
        }
        // Ran upgrade routines before?
        if (empty($previous_version)) {
            update_option('mc4wp_version', MC4WP_VERSION);
            // if we have at least one form, we're going to run upgrade routine for v3 => v4 anyway.
            // TODO: Remove this once we hit 4.2.x
            $posts = get_posts(array('post_type' => 'mc4wp-form', 'numberposts' => 1));
            if (empty($posts)) {
                return false;
            }
            $previous_version = '3.9';
        }
        // Rollback'ed?
        if (version_compare($previous_version, MC4WP_VERSION, '>')) {
            update_option('mc4wp_version', MC4WP_VERSION);
            return false;
        }
        // This means we're good!
        if (version_compare($previous_version, MC4WP_VERSION) > -1) {
            return false;
        }
        define('MC4WP_DOING_UPGRADE', true);
        $upgrade_routines = new MC4WP_Upgrade_Routines($previous_version, MC4WP_VERSION, dirname(__FILE__) . '/migrations');
        $upgrade_routines->run();
        update_option('mc4wp_version', MC4WP_VERSION);
    }