PUM_Utils_Upgrades::update_plugin_version()

Update version info.


Description Description


Source Source

File: classes/Utils/Upgrades.php

	public static function update_plugin_version() {
		self::$version         = get_option( 'pum_ver' );
		self::$upgraded_from   = get_option( 'pum_ver_upgraded_from' );
		self::$initial_version = get_option( 'pum_initial_version' );
		self::$db_version      = get_option( 'pum_db_ver' );
		self::$installed_on    = get_option( 'pum_installed_on' );

		/**
		 * If no version set check if a deprecated one exists.
		 */
		if ( empty( self::$version ) ) {
			$deprecated_ver = get_site_option( 'popmake_version' );

			// set to the deprecated version or last version that didn't have the version option set
			self::$version = $deprecated_ver ? $deprecated_ver : Popup_Maker::$VER; // Since we had versioning in v1 if there isn't one stored its a new install.

			update_option( 'pum_ver', self::$version );
		}

		/**
		 * Back fill the initial version with the oldest version we can detect.
		 */
		if ( ! self::$initial_version ) {

			$oldest_known = Popup_Maker::$VER;

			if ( self::$version && version_compare( self::$version, $oldest_known, '<' ) ) {
				$oldest_known = self::$version;
			}

			if ( self::$upgraded_from && version_compare( self::$upgraded_from, $oldest_known, '<' ) ) {
				$oldest_known = self::$upgraded_from;
			}

			$deprecated_ver = get_site_option( 'popmake_version' );
			if ( $deprecated_ver && version_compare( $deprecated_ver, $oldest_known, '<' ) ) {
				$oldest_known = $deprecated_ver;
			}

			$dep_upgraded_from = get_option( 'popmake_version_upgraded_from' );
			if ( $dep_upgraded_from && version_compare( $dep_upgraded_from, $oldest_known, '<' ) ) {
				$oldest_known = $dep_upgraded_from;
			}

			self::$initial_version = $oldest_known;

			// Only set this value if it doesn't exist.
			update_option( 'pum_initial_version', $oldest_known );
		}

		if ( version_compare( self::$version, Popup_Maker::$VER, '<' ) ) {
			// Allow processing of small core upgrades
			do_action( 'pum_update_core_version', self::$version );

			// Save Upgraded From option
			update_option( 'pum_ver_upgraded_from', self::$version );
			update_option( 'pum_ver', Popup_Maker::$VER );
			self::$upgraded_from = self::$version;
			self::$version       = Popup_Maker::$VER;

			// Reset JS/CSS assets for regeneration.
			pum_reset_assets();
		} else if ( ! self::$upgraded_from || self::$upgraded_from === 'false' ) {
			// Here to prevent constant extra queries.
			self::$upgraded_from = '0.0.0';
			update_option( 'pum_ver_upgraded_from', self::$upgraded_from );
		}

		// If no current db version, but prior install detected, set db version correctly.
		// Here for backward compatibility.
		if ( ! self::$db_version || self::$db_version < Popup_Maker::$DB_VER ) {
			self::$db_version = Popup_Maker::$DB_VER;
			update_option( 'pum_db_ver', self::$db_version );
		}

		/**
		 * Back fill the initial version with the oldest version we can detect.
		 */
		if ( ! self::$installed_on ) {
			$installed_on = current_time( 'mysql' );

			$review_installed_on = get_option( 'pum_reviews_installed_on' );
			if ( ! empty( $review_installed_on ) ) {
				$installed_on = $review_installed_on;
			}

			self::$installed_on = $installed_on;

			update_option( 'pum_installed_on', self::$installed_on );
		}
	}


Top ↑

User Contributed Notes User Contributed Notes

You must log in before being able to contribute a note or feedback.