wp/wp-content/plugins/portfolio/bws_menu/bws_include.php
changeset 16 a86126ab1dd4
parent 7 cf61fcea0001
child 19 3d72ae0968f4
--- a/wp/wp-content/plugins/portfolio/bws_menu/bws_include.php	Tue Oct 22 16:11:46 2019 +0200
+++ b/wp/wp-content/plugins/portfolio/bws_menu/bws_include.php	Tue Dec 15 13:49:49 2020 +0100
@@ -3,7 +3,7 @@
 * Get latest version
 */
 
-if ( ! function_exists ( 'bws_include_init' ) ) {
+if ( ! function_exists( 'bws_include_init' ) ) {
 	function bws_include_init( $base, $bws_menu_source = 'plugins' ) {
 		global $bstwbsftwppdtplgns_options, $bstwbsftwppdtplgns_added_menu, $bstwbsftwppdtplgns_active_plugins;
 		if ( ! function_exists( 'get_plugin_data' ) )
@@ -20,7 +20,9 @@
 		}
 
 		$bws_menu_info = get_plugin_data( $bws_menu_dir );
-		$bws_menu_version = $bws_menu_info["Version"];
+
+		$is_pro_bws_menu = ( strpos( $bws_menu_info["Version"], 'pro' ) !== false );
+		$bws_menu_version = str_replace( '-pro', '', $bws_menu_info["Version"] );		
 
 		if ( ! isset( $bstwbsftwppdtplgns_options ) ) {
 			if ( function_exists( 'is_multisite' ) && is_multisite() ) {
@@ -43,7 +45,8 @@
 				update_option( 'bstwbsftwppdtplgns_options', $bstwbsftwppdtplgns_options );
 			require_once( dirname( __FILE__ ) . '/bws_menu.php' );
 			require_once( dirname( __FILE__ ) . '/bws_functions.php' );
-		} else if ( ! isset( $bstwbsftwppdtplgns_options['bws_menu']['version'][ $base ] ) || $bstwbsftwppdtplgns_options['bws_menu']['version'][ $base ] < $bws_menu_version ) {
+			require_once( dirname( __FILE__ ) . '/class-bws-settings.php' );
+		} else if ( ! $is_pro_bws_menu && ( ! isset( $bstwbsftwppdtplgns_options['bws_menu']['version'][ $base ] ) || $bstwbsftwppdtplgns_options['bws_menu']['version'][ $base ] != $bws_menu_version ) ) {
 			$bstwbsftwppdtplgns_options['bws_menu']['version'][ $base ] = $bws_menu_version;
 			if ( function_exists( 'is_multisite' ) && is_multisite() )
 				update_site_option( 'bstwbsftwppdtplgns_options', $bstwbsftwppdtplgns_options );
@@ -51,25 +54,64 @@
 				update_option( 'bstwbsftwppdtplgns_options', $bstwbsftwppdtplgns_options );
 			require_once( dirname( __FILE__ ) . '/bws_menu.php' );
 			require_once( dirname( __FILE__ ) . '/bws_functions.php' );
+			require_once( dirname( __FILE__ ) . '/class-bws-settings.php' );
+		} else if ( $is_pro_bws_menu && ( ! isset( $bstwbsftwppdtplgns_options['bws_menu']['version_pro'][ $base ] ) || $bstwbsftwppdtplgns_options['bws_menu']['version_pro'][ $base ] != $bws_menu_version ) ) {
+			$bstwbsftwppdtplgns_options['bws_menu']['version_pro'][ $base ] = $bws_menu_version;
+			
+			if ( isset( $bstwbsftwppdtplgns_options['bws_menu']['version'][ $base ] ) )
+				unset( $bstwbsftwppdtplgns_options['bws_menu']['version'][ $base ] );
+			
+			if ( function_exists( 'is_multisite' ) && is_multisite() )
+				update_site_option( 'bstwbsftwppdtplgns_options', $bstwbsftwppdtplgns_options );
+			else
+				update_option( 'bstwbsftwppdtplgns_options', $bstwbsftwppdtplgns_options );
+			require_once( dirname( __FILE__ ) . '/bws_menu.php' );
+			require_once( dirname( __FILE__ ) . '/bws_functions.php' );
+			require_once( dirname( __FILE__ ) . '/class-bws-settings.php' );
 		} else if ( ! isset( $bstwbsftwppdtplgns_added_menu ) ) {
 
 			$all_plugins = get_plugins();
 			$all_themes = wp_get_themes();
 
-			foreach ( $bstwbsftwppdtplgns_options['bws_menu']['version'] as $key => $value ) {
-				if ( array_key_exists( $key, $all_plugins ) || array_key_exists( $key, $all_themes ) ) {
-					if ( $bws_menu_version < $value && ( is_plugin_active( $key ) || preg_match( '|' . $key . '$|', get_template_directory() ) ) ) {
-						if ( ! isset( $product_with_newer_menu ) )
-							$product_with_newer_menu = $key;
-						elseif ( $bstwbsftwppdtplgns_options['bws_menu']['version'][ $product_with_newer_menu ] < $bstwbsftwppdtplgns_options['bws_menu']['version'][ $key ] )
-							$product_with_newer_menu = $key;
+			if ( ! empty( $bstwbsftwppdtplgns_options['bws_menu']['version_pro'] ) ) {
+				foreach ( $bstwbsftwppdtplgns_options['bws_menu']['version_pro'] as $key => $value ) {
+					if ( array_key_exists( $key, $all_plugins ) || array_key_exists( $key, $all_themes ) ) {
+						if ( $bws_menu_version < $value && ( is_plugin_active( $key ) || preg_match( '|' . $key . '$|', get_template_directory() ) ) ) {
+							if ( ! isset( $product_with_newer_menu ) )
+								$product_with_newer_menu = $key;
+							elseif ( $bstwbsftwppdtplgns_options['bws_menu']['version_pro'][ $product_with_newer_menu ] < $bstwbsftwppdtplgns_options['bws_menu']['version_pro'][ $key ] )
+								$product_with_newer_menu = $key;
+						}
+					} else {
+						unset( $bstwbsftwppdtplgns_options['bws_menu']['version_pro'][ $key ] );
+						if ( function_exists( 'is_multisite' ) && is_multisite() )
+							update_site_option( 'bstwbsftwppdtplgns_options', $bstwbsftwppdtplgns_options );
+						else
+							update_option( 'bstwbsftwppdtplgns_options', $bstwbsftwppdtplgns_options );
 					}
+				}
+			}
+
+			if ( ! isset( $product_with_newer_menu ) ) {
+				if ( $is_pro_bws_menu ) {
+					$product_with_newer_menu = $base;
 				} else {
-					unset( $bstwbsftwppdtplgns_options['bws_menu']['version'][ $key ] );
-					if ( function_exists( 'is_multisite' ) && is_multisite() )
-						update_site_option( 'bstwbsftwppdtplgns_options', $bstwbsftwppdtplgns_options );
-					else
-						update_option( 'bstwbsftwppdtplgns_options', $bstwbsftwppdtplgns_options );
+					foreach ( $bstwbsftwppdtplgns_options['bws_menu']['version'] as $key => $value ) {
+						if ( array_key_exists( $key, $all_plugins ) || array_key_exists( $key, $all_themes ) ) {
+							if ( $bws_menu_version < $value && ( is_plugin_active( $key ) || preg_match( '|' . $key . '$|', get_template_directory() ) ) ) {
+								if ( ! isset( $product_with_newer_menu ) )
+									$product_with_newer_menu = $key;
+								elseif ( $bstwbsftwppdtplgns_options['bws_menu']['version'][ $product_with_newer_menu ] < $bstwbsftwppdtplgns_options['bws_menu']['version'][ $key ] )
+									$product_with_newer_menu = $key;
+							}
+						} else {
+							unset( $bstwbsftwppdtplgns_options['bws_menu']['version'][ $key ] );
+							if ( function_exists( 'is_multisite' ) && is_multisite() )
+								update_site_option( 'bstwbsftwppdtplgns_options', $bstwbsftwppdtplgns_options );
+							else
+								update_option( 'bstwbsftwppdtplgns_options', $bstwbsftwppdtplgns_options );
+						}
+					}
 				}
 			}
 
@@ -91,9 +133,11 @@
 			if ( file_exists( $bws_menu_new_dir . '/bws_menu/bws_functions.php' ) ) {
 				require_once( $bws_menu_new_dir . '/bws_menu/bws_functions.php' );
 				require_once( $bws_menu_new_dir . '/bws_menu/bws_menu.php' );
+				require_once( $bws_menu_new_dir . '/bws_menu/class-bws-settings.php' );
 			} else {
 				require_once( dirname( __FILE__ ) . '/bws_menu.php' );
 				require_once( dirname( __FILE__ ) . '/bws_functions.php' );
+				require_once( dirname( __FILE__ ) . '/class-bws-settings.php' );
 			}
 
 			$bstwbsftwppdtplgns_added_menu = true;