database_theme_version = get_option( 'avada_version', true ); if ( is_array( $this->database_theme_version ) ) { $this->database_theme_version = end( $this->database_theme_version ); } // Make sure the version saved in the db is properly formatted. $this->database_theme_version = Avada_Helper::normalize_version( $this->database_theme_version ); // Make sure the current version is properly formatted. $this->version = Avada_Helper::normalize_version( $this->version ); $this->option_name = $this->set_option_name( $this->version ); // Trigger the migration. $this->migration_process(); // Set the version. $this->update_version(); } /** * Set the currect option name, how it is stored in the db of the currently converted version. * * @access protected * @since 5.1.0 * @param string $version The theme version. */ protected function set_option_name( $version ) { if ( version_compare( $this->database_theme_version, '5.1.0', '>=' ) ) { $option_name = 'fusion_options'; } elseif ( version_compare( $version, '4.0.0', '<' ) ) { $option_name = 'Avada_options'; } elseif ( version_compare( $version, '5.1.0', '<=' ) ) { $option_name = 'avada_theme_options'; } else { $option_name = 'fusion_options'; } return $option_name; } /** * Updates the version. * * @access protected * @since 5.0.0 * @return void */ protected function update_version() { // Do not update the version in the db // if the current version is greater than the one we're updating to. if ( ! $this->database_theme_version || empty( $this->database_theme_version ) ) { return; } if ( version_compare( $this->database_theme_version, $this->version, '>=' ) ) { return; } update_option( 'avada_version', $this->version ); } /** * The actual migration process. * Empty on the parent class, meant to be overriden in version-specific classes. * * @access protected * @since 5.0.0 */ abstract protected function migration_process(); }