diff --git a/classes/Upgrade/Upgrade_43000_To_44400.php b/classes/Upgrade/Upgrade_43000_To_44400.php index 069a23c9..ba12236a 100644 --- a/classes/Upgrade/Upgrade_43000_To_44400.php +++ b/classes/Upgrade/Upgrade_43000_To_44400.php @@ -44,6 +44,24 @@ public function __construct( WpSecurityAuditLog $plugin ) { */ public function run() { + // Delete unwanted usermeta. + global $wpdb; + $wpdb->query( // phpcs:ignore + $wpdb->prepare( + "DELETE FROM {$wpdb->usermeta} WHERE meta_key = '%s';", // phpcs:ignore + 'wsal-notice-update-44-notice' + ) + ); + + if ( class_exists( 'WSAL_Extension_Manager' ) ) { + WSAL_Extension_Manager::include_extension( 'external-db' ); + } + + if ( ! did_action( 'wsal_init' ) ) { + // We need to call wsal init manually because it does not run as before the upgrade procedure is triggered. + do_action( 'wsal_init', $this->plugin ); + } + // Remove some forgotten WFCM settings from the options table. $this->remove_wfcm_leftover_settings(); diff --git a/third-party/vendor/autoload.php b/third-party/vendor/autoload.php index a212a0b5..c031f239 100644 --- a/third-party/vendor/autoload.php +++ b/third-party/vendor/autoload.php @@ -4,4 +4,4 @@ require_once __DIR__ . '/composer/autoload_real.php'; -return ComposerAutoloaderInitb9d672d234a3d43fa8ace493e8708e77::getLoader(); +return ComposerAutoloaderInit3f2af4d6ad50de85879f0d0ae1ddc459::getLoader(); diff --git a/third-party/vendor/composer/autoload_real.php b/third-party/vendor/composer/autoload_real.php index a15ba29f..5144202f 100644 --- a/third-party/vendor/composer/autoload_real.php +++ b/third-party/vendor/composer/autoload_real.php @@ -2,7 +2,7 @@ // autoload_real.php @generated by Composer -class ComposerAutoloaderInitb9d672d234a3d43fa8ace493e8708e77 +class ComposerAutoloaderInit3f2af4d6ad50de85879f0d0ae1ddc459 { private static $loader; @@ -21,16 +21,16 @@ public static function getLoader() if (null !== self::$loader) { return self::$loader; } - - spl_autoload_register(array('ComposerAutoloaderInitb9d672d234a3d43fa8ace493e8708e77', 'loadClassLoader'), true, true); + + spl_autoload_register(array('ComposerAutoloaderInit3f2af4d6ad50de85879f0d0ae1ddc459', 'loadClassLoader'), true, true); self::$loader = $loader = new \Composer\Autoload\ClassLoader(); - spl_autoload_unregister(array('ComposerAutoloaderInitb9d672d234a3d43fa8ace493e8708e77', 'loadClassLoader')); + spl_autoload_unregister(array('ComposerAutoloaderInit3f2af4d6ad50de85879f0d0ae1ddc459', 'loadClassLoader')); $useStaticLoader = PHP_VERSION_ID >= 50600 && !defined('HHVM_VERSION') && (!function_exists('zend_loader_file_encoded') || !zend_loader_file_encoded()); if ($useStaticLoader) { require_once __DIR__ . '/autoload_static.php'; - call_user_func(\Composer\Autoload\ComposerStaticInitb9d672d234a3d43fa8ace493e8708e77::getInitializer($loader)); + call_user_func(\Composer\Autoload\ComposerStaticInit3f2af4d6ad50de85879f0d0ae1ddc459::getInitializer($loader)); } else { $classMap = require __DIR__ . '/autoload_classmap.php'; if ($classMap) { diff --git a/third-party/vendor/composer/autoload_static.php b/third-party/vendor/composer/autoload_static.php index 1122d7c1..6ce98f59 100644 --- a/third-party/vendor/composer/autoload_static.php +++ b/third-party/vendor/composer/autoload_static.php @@ -4,7 +4,7 @@ namespace Composer\Autoload; -class ComposerStaticInitb9d672d234a3d43fa8ace493e8708e77 +class ComposerStaticInit3f2af4d6ad50de85879f0d0ae1ddc459 { public static $classMap = array ( 'WSAL_Vendor\\MirazMac\\Requirements\\Checker' => __DIR__ . '/..' . '/mirazmac/php-requirements-checker/src/Checker.php', @@ -15,7 +15,7 @@ class ComposerStaticInitb9d672d234a3d43fa8ace493e8708e77 public static function getInitializer(ClassLoader $loader) { return \Closure::bind(function () use ($loader) { - $loader->classMap = ComposerStaticInitb9d672d234a3d43fa8ace493e8708e77::$classMap; + $loader->classMap = ComposerStaticInit3f2af4d6ad50de85879f0d0ae1ddc459::$classMap; }, null, ClassLoader::class); } } diff --git a/wp-security-audit-log.php b/wp-security-audit-log.php index 44645430..a3450a72 100644 --- a/wp-security-audit-log.php +++ b/wp-security-audit-log.php @@ -672,6 +672,7 @@ public static function is_wpseo_active() { */ public static function is_mainwp_active() { return self::is_plugin_active( 'mainwp-child/mainwp-child.php' ); + } /** @@ -1321,11 +1322,18 @@ public function update( $old_version, $new_version ) { // Update version in db. $this->set_global_setting( 'version', $new_version, true ); + // Keep track of the initial db version. This gets updated multiple times during the upgrade process + // and we need to know what was the starting point. + $initial_db_version = $this->settings()->get_database_version(); + if ( '0.0.0' === $old_version ) { // Set some initial plugins settings (only the ones that bypass the regular settings retrieval at // some point) - e.g. disabled events. $this->set_global_setting( 'disabled-alerts', implode( ',', $this->settings()->always_disabled_alerts ) ); + // We set the database version to the latest if this is a freshly installed plugin. + $this->settings()->set_database_version( 44400 ); + // We stop here as no further updates are needed for a freshly installed plugin. return; } @@ -1422,31 +1430,27 @@ public function update( $old_version, $new_version ) { } if ( version_compare( $new_version, '4.4.0', '>=' ) ) { - // Delete unwanted usermeta. - global $wpdb; - $all_user_meta = $wpdb->get_results( // phpcs:ignore - $wpdb->prepare( - "DELETE FROM {$wpdb->usermeta} WHERE meta_key = '%s';", // phpcs:ignore - 'wsal-notice-update-44-notice' - ) - ); - - $this->settings()->set_database_version( 44400 ); - - if ( class_exists( 'WSAL_Extension_Manager' ) ) { - WSAL_Extension_Manager::include_extension( 'external-db' ); + $should_440_upgrade_run = true; + if ( 44400 === $initial_db_version ) { + // Database version is 44400 if someone already upgraded from any version to 4.4.0. + $should_440_upgrade_run = false; + } elseif ( 0 === $initial_db_version ) { + // Database version is 0 if the plugin was never upgraded. This could be an upgrade from + // 4.3.6, 4.4.0 or any other lower version. + $should_440_upgrade_run = false; + if ( version_compare( $old_version, '4.4.0', '<' ) ) { + // We are upgrading from pre-4.4.0 version. + $should_440_upgrade_run = true; + } } - if ( ! did_action( 'wsal_init' ) ) { - // We need to call wsal init manually because it does not run as before the upgrade procedure is triggered. - do_action( 'wsal_init', $this ); + if ( $should_440_upgrade_run ) { + require_once 'classes/Upgrade/Upgrade_43000_To_44400.php'; + $upgrader = new WSAL_Upgrade_43000_To_44400( $this ); + $upgrader->run(); } - require_once 'classes/Upgrade/Upgrade_43000_To_44400.php'; - $upgrader = new WSAL_Upgrade_43000_To_44400( $this ); - $upgrader->run(); - - // @todo remove legacy periodic reports for unique_ip and number_logins + $this->settings()->set_database_version( 44400 ); } } }