diff --git a/includes/class-dependencies.php b/includes/class-dependencies.php
index 51e142a9..cc02622c 100644
--- a/includes/class-dependencies.php
+++ b/includes/class-dependencies.php
@@ -180,27 +180,41 @@ if ( ! class_exists( 'um\Dependencies' ) ) {
/**
* Compare UM core and extension versions
*
- * @param string $um_required_ver
+ * @param string $um_required_ver UM core required version.
* @param string $ext_ver
* @param string $ext_key
* @param string $ext_title
+ * @param bool $raw False by default. Then return message. Use `true` in conditions inside `plugins_loaded` hook
* @return bool
*/
- public function compare_versions( $um_required_ver, $ext_ver, $ext_key, $ext_title ) {
-
- if ( version_compare( UM_VERSION, $um_required_ver, '<' )
- || empty( $this->ext_required_version[$ext_key] )
- || version_compare( $this->ext_required_version[$ext_key], $ext_ver, '>' ) ) {
+ public function compare_versions( $um_required_ver, $ext_ver, $ext_key, $ext_title, $raw = false ) {
+ if ( empty( $this->ext_required_version[ $ext_key ] ) ||
+ version_compare( UM_VERSION, $um_required_ver, '<' ) ||
+ version_compare( $this->ext_required_version[ $ext_key ], $ext_ver, '>' ) ) {
$message = '';
if ( version_compare( UM_VERSION, $um_required_ver, '<' ) ) {
- // translators: %1$s is a extension name; %2$s is a plugin name; %3$s is a required version.
- $message = sprintf( __( 'This version of "%1$s" requires the core %2$s plugin to be %3$s or higher.', 'ultimate-member' ), $ext_title, UM_PLUGIN_NAME, $um_required_ver ) .
- '
' .
- // translators: %s: plugin name.
- sprintf( __( 'Please update %s to the latest version.', 'ultimate-member' ), UM_PLUGIN_NAME );
+ if ( $raw ) {
+ return false;
+ }
+ if ( UM()->is_new_ui() ) {
+ // translators: %1$s is an extension name; %2$s is a plugin name; %3$s is a required version.
+ $message = sprintf( __( 'When new UI is enabled this version of "%1$s" requires the core %2$s plugin to be %3$s or higher.', 'ultimate-member' ), $ext_title, UM_PLUGIN_NAME, $um_required_ver ) .
+ '
' .
+ // translators: %s: plugin name.
+ sprintf( __( 'Please update %s to the latest version or disable new UI.', 'ultimate-member' ), UM_PLUGIN_NAME );
+ } else {
+ // translators: %1$s is an extension name; %2$s is a plugin name; %3$s is a required version.
+ $message = sprintf( __( 'This version of "%1$s" requires the core %2$s plugin to be %3$s or higher.', 'ultimate-member' ), $ext_title, UM_PLUGIN_NAME, $um_required_ver ) .
+ '
' .
+ // translators: %s: plugin name.
+ sprintf( __( 'Please update %s to the latest version.', 'ultimate-member' ), UM_PLUGIN_NAME );
+ }
} elseif ( empty( $this->ext_required_version[ $ext_key ] ) || version_compare( $this->ext_required_version[ $ext_key ], $ext_ver, '>' ) ) {
- // translators: %1$s is a plugin name; %2$s is a extension name; %3$s is a extension version.
+ if ( $raw ) {
+ return false;
+ }
+ // translators: %1$s is a plugin name; %2$s is an extension name; %3$s is an extension version.
$message = sprintf( __( 'Sorry, but this version of %1$s does not work with extension "%2$s" %3$s version.', 'ultimate-member' ), UM_PLUGIN_NAME, $ext_title, $ext_ver ) .
'
' .
// translators: %s: extension name.
@@ -208,19 +222,24 @@ if ( ! class_exists( 'um\Dependencies' ) ) {
}
return $message;
- } else {
- //check correct folder name for extensions
- if ( ! self::$active_plugins ) self::init();
+ }
- if ( ! in_array( "um-{$ext_key}/um-{$ext_key}.php", self::$active_plugins ) && ! array_key_exists( "um-{$ext_key}/um-{$ext_key}.php", self::$active_plugins ) ) {
- // translators: %1$s is a extension name; %2$s is a extension version.
- $message = sprintf( __( 'Please check "%1$s" %2$s extension\'s folder name.', 'ultimate-member' ), $ext_title, $ext_ver ) .
- '
' .
- // translators: %s: extension name.
- sprintf( __( 'Correct folder name is "%s"', 'ultimate-member' ), "um-{$ext_key}" );
+ // Check correct folder name for extensions.
+ if ( ! self::$active_plugins ) {
+ self::init();
+ }
- return $message;
+ if ( ! array_key_exists( "um-{$ext_key}/um-{$ext_key}.php", self::$active_plugins ) &&
+ ! in_array( "um-{$ext_key}/um-{$ext_key}.php", self::$active_plugins, true ) ) {
+ if ( $raw ) {
+ return false;
}
+
+ // translators: %1$s is an extension name; %2$s is an extension version.
+ return sprintf( __( 'Please check "%1$s" %2$s extension\'s folder name.', 'ultimate-member' ), $ext_title, $ext_ver ) .
+ '
' .
+ // translators: %s: extension name.
+ sprintf( __( 'Correct folder name is "%s"', 'ultimate-member' ), "um-{$ext_key}" );
}
return true;