/home/arranoyd/magicraft/wp-content/plugins/incsub-support/inc/upgrades.php
<?php



/**
 * Groups the old settings into just one setting option
 *
 * @since 1.9
 */
function incsub_support_group_settings_upgrade() {
	$saved_version = get_site_option( 'incsub_support_version', false );
	if ( ! $saved_version || version_compare( $saved_version, '1.9' ) < 0 ) {
		// We're going to group all settings into one option
		$default_settings = incsub_support()->settings->get_default_settings();
		$old_settings = array(
			'incsub_support_menu_name' => get_site_option( 'incsub_support_menu_name', $default_settings['incsub_support_menu_name'] ),
			'incsub_support_from_name' => get_site_option( 'incsub_support_from_name', $default_settings['incsub_support_from_name'] ),
			'incsub_support_from_mail' => get_site_option( 'incsub_support_from_mail', $default_settings['incsub_support_from_mail'] ),
			'incsub_support_fetch_imap' => get_site_option('incsub_support_fetch_imap', $default_settings['incsub_support_fetch_imap'] ),
			'incsub_support_imap_frequency' => get_site_option('incsub_support_imap_frequency', $default_settings['incsub_support_imap_frequency'] ),
			'incsub_allow_only_pro_sites' => get_site_option( 'incsub_allow_only_pro_sites', $default_settings['incsub_allow_only_pro_sites'] ),
			'incsub_pro_sites_level' => get_site_option( 'incsub_pro_sites_level', $default_settings['incsub_pro_sites_level'] ),
			'incsub_allow_only_pro_sites_faq' => get_site_option( 'incsub_allow_only_pro_sites_faq', $default_settings['incsub_allow_only_pro_sites_faq'] ),
			'incsub_pro_sites_faq_level' => get_site_option( 'incsub_pro_sites_faq_level', $default_settings['incsub_pro_sites_faq_level'] ),
			'incsub_ticket_privacy' => get_site_option( 'incsub_ticket_privacy', $default_settings['incsub_ticket_privacy'] ),
			'incsub_support_faq_enabled' => get_site_option( 'incsub_support_faq_enabled', false ),
			'incsub_support_tickets_role' => get_site_option( 'incsub_support_tickets_role', $default_settings['incsub_support_tickets_role'] ),
			'incsub_support_faqs_role' => get_site_option( 'incsub_support_faqs_role', $default_settings['incsub_support_faqs_role'] )
		);
		update_site_option( 'incsub_support_settings', $old_settings );

		foreach ( $old_settings as $key => $value ) {
			delete_site_option( $key );
		}
	}
}


/**
 * Upgrades the plugin
 *
 * @since 1.8
 *
 */
function incsub_support_check_for_upgrades() {

	$saved_version = get_site_option( 'incsub_support_version', false );

	if ( $saved_version === false ) {
		incsub_support()->activate();
	}

	if ( ! $saved_version || version_compare( $saved_version, INCSUB_SUPPORT_PLUGIN_VERSION ) < 0 ) {

		$model = MU_Support_System_Model::get_instance();

		if ( version_compare( $saved_version, '1.7.2.2' ) < 0 )
			$model->upgrade_1722();

		if ( version_compare( $saved_version, '1.8' ) < 0 )
			$model->upgrade_18();

		if ( version_compare( $saved_version, '1.8.1' ) < 0 )
			$model->upgrade_181();

		if ( version_compare( $saved_version, '1.9.1' ) < 0 ) {
			incsub_support_set_new_roles();
		}

		if ( version_compare( $saved_version, '1.9.6' ) < 0 ) {
			$model->upgrade_196();
		}

		if ( version_compare( $saved_version, '1.9.8' ) < 0 ) {
			$model->upgrade_198();
		}

		if ( version_compare( $saved_version, '1.9.8.1' ) < 0 ) {
			$model->upgrade_1981();
		}

		if ( version_compare( $saved_version, '2.0beta4' ) < 0 ) {
			incsub_support_upgrade_20beta4();
		}

		if ( version_compare( $saved_version, '2.1' ) < 0 ) {
			incsub_support()->model->create_tables();
		}

		if ( version_compare( $saved_version, '2.1.8' ) < 0 ) {
			incsub_support()->model->create_tables();
		}

		update_site_option( 'incsub_support_version', INCSUB_SUPPORT_PLUGIN_VERSION );

		set_transient( 'incsub_support_welcome', true );
	}

}

function incsub_support_upgrade_20beta4() {
	$settings = incsub_support_get_settings();
	$super_admin = $settings['incsub_support_main_super_admin'];

	if ( ! is_numeric( $super_admin ) ) {
		$user = get_user_by( 'login', $super_admin );
		$super_admins = MU_Support_System::get_super_admins();
		if ( $user ) {
			$user_id = $user->ID;
			$found = false;
			foreach ( $super_admins as $key => $value ) {
				if ( $value === $super_admin )
					$found = $key;
			}

			if ( $found !== false ) {
				$settings['incsub_support_main_super_admin'] = $found;
			}

		}
		else {
			$settings['incsub_support_main_super_admin'] = key( $super_admins );
		}
	}

	incsub_support_update_settings( $settings );
}


/**
 * Sets a new system based on roles instead of capabilities
 *
 * @since 1.9.1
 */
function incsub_support_set_new_roles() {
	global $wp_roles;

	$roles_settings = array(
		'incsub_support_tickets_role' => incsub_support_get_setting( 'incsub_support_tickets_role' ),
		'incsub_support_faqs_role' => incsub_support_get_setting( 'incsub_support_faqs_role' )
	);

	/**
	foreach ( $roles_settings as $key => $value ) {
		switch ( $value ) {
			case 'manage_options':
				incsub_support_get_setting(  $key  ) = array( 'administrator' );
				break;
			case 'publish_pages':
				incsub_support_get_setting(  $key  ) = array( 'administrator', 'editor' );
				break;
			case 'publish_posts':
				incsub_support_get_setting(  $key  ) = array( 'administrator', 'editor', 'author' );
				break;
			case 'edit_posts':
				incsub_support_get_setting(  $key  ) = array( 'administrator', 'editor', 'author', 'contributor' );
				break;
			case 'read':
				incsub_support_get_setting(  $key  ) = array( 'administrator', 'editor', 'author', 'contributor', 'subscriber' );
				break;
		}
	}
	**/
}