woocommerce-multilingual
/
vendor
/
otgs
/
installer
/
includes
/
class-otgs-installer-wp-components-storage.php
CDTClient
1 month ago
admin-notices
1 month ago
buy-url
1 month ago
debug
1 month ago
exceptions
5 years ago
instances
1 month ago
loader
5 years ago
products
1 month ago
repository
1 month ago
rest
1 month ago
site-key
1 month ago
support
1 month ago
template-service
1 month ago
upgrade
1 month ago
utilities
1 month ago
wpml-content-stats
1 month ago
class-installer-dependencies.php
1 month ago
class-installer-theme.php
1 month ago
class-installer-upgrader-skins.php
1 month ago
class-otgs-installer-autoloader.php
5 years ago
class-otgs-installer-cloned-sites-handler.php
1 month ago
class-otgs-installer-debug-info.php
1 month ago
class-otgs-installer-factory.php
1 month ago
class-otgs-installer-filename-hooks.php
1 month ago
class-otgs-installer-icons.php
1 month ago
class-otgs-installer-loader.php
10 months ago
class-otgs-installer-package-product-finder.php
1 month ago
class-otgs-installer-package-product.php
1 month ago
class-otgs-installer-package.php
5 years ago
class-otgs-installer-php-functions.php
1 month ago
class-otgs-installer-plugin-factory.php
1 month ago
class-otgs-installer-plugin-finder.php
1 month ago
class-otgs-installer-plugin.php
1 month ago
class-otgs-installer-plugins-page-notice.php
1 month ago
class-otgs-installer-plugins-update-cache-cleaner.php
5 years ago
class-otgs-installer-settings.php
1 month ago
class-otgs-installer-source-factory.php
5 years ago
class-otgs-installer-source.php
1 month ago
class-otgs-installer-subscription-factory.php
5 years ago
class-otgs-installer-subscription-warning-message.php
1 month ago
class-otgs-installer-subscription.php
1 month ago
class-otgs-installer-wp-components-hooks.php
1 month ago
class-otgs-installer-wp-components-sender.php
1 month ago
class-otgs-installer-wp-components-setting-ajax.php
1 month ago
class-otgs-installer-wp-components-setting-resources.php
1 month ago
class-otgs-installer-wp-components-storage.php
1 month ago
class-otgs-installer-wp-share-local-components-setting-hooks.php
1 month ago
class-otgs-installer-wp-share-local-components-setting.php
1 month ago
class-translation-service-info.php
1 month ago
class-wp-installer-api.php
1 month ago
class-wp-installer-channels.php
1 month ago
class-wp-installer.php
1 month ago
functions-core.php
1 month ago
functions-templates.php
1 month ago
otgs-installer-autoload-classmap.php
10 months ago
class-otgs-installer-wp-components-storage.php
87 lines
| 1 | <?php |
| 2 | |
| 3 | class OTGS_Installer_WP_Components_Storage { |
| 4 | |
| 5 | const COMPONENTS_CACHE_OPTION_KEY = 'otgs_active_components'; |
| 6 | |
| 7 | public function refresh_cache() { |
| 8 | $active_theme = wp_get_theme(); |
| 9 | $installed_plugins = $this->get_plugins(); |
| 10 | $components = array(); |
| 11 | |
| 12 | foreach ( $installed_plugins as $file => $plugin ) { |
| 13 | if ( is_plugin_active( $file ) ) { |
| 14 | $components['plugin'][] = array( |
| 15 | 'File' => $file, |
| 16 | 'Name' => $plugin['Name'], |
| 17 | 'Version' => $plugin['Version'], |
| 18 | ); |
| 19 | } |
| 20 | } |
| 21 | |
| 22 | $components['theme'][] = array( |
| 23 | 'Template' => $active_theme->get_template(), |
| 24 | 'Name' => $active_theme->get( 'Name' ), |
| 25 | 'Version' => $active_theme->get( 'Version' ), |
| 26 | ); |
| 27 | |
| 28 | update_option( self::COMPONENTS_CACHE_OPTION_KEY, $components ); |
| 29 | } |
| 30 | |
| 31 | public function is_outdated() { |
| 32 | $components = $this->get(); |
| 33 | |
| 34 | if ( ! $components ) { |
| 35 | return true; |
| 36 | } |
| 37 | |
| 38 | $current_theme = wp_get_theme(); |
| 39 | $active_plugins = get_option( 'active_plugins' ); |
| 40 | |
| 41 | if ( ! function_exists( 'get_plugins' ) ) { |
| 42 | require_once ABSPATH . 'wp-admin/includes/plugin.php'; |
| 43 | } |
| 44 | |
| 45 | $installed_plugins = $this->get_plugins(); |
| 46 | |
| 47 | if ( isset( $components['theme'] ) ) { |
| 48 | if ( $components['theme'][0]['Template'] !== $current_theme->get_template() || |
| 49 | $components['theme'][0]['Version'] !== $current_theme->get( 'Version' ) |
| 50 | ) { |
| 51 | return true; |
| 52 | } |
| 53 | } |
| 54 | |
| 55 | if ( array_key_exists( 'plugin', $components ) ) { |
| 56 | $cached_activated_plugins = wp_list_pluck( $components['plugin'], 'File' ); |
| 57 | sort( $cached_activated_plugins ); |
| 58 | sort( $active_plugins ); |
| 59 | |
| 60 | if ( $cached_activated_plugins !== $active_plugins ) { |
| 61 | return true; |
| 62 | } |
| 63 | |
| 64 | foreach ( $components['plugin'] as $plugin ) { |
| 65 | if ( $plugin['Version'] !== $installed_plugins[ $plugin['File'] ]['Version'] || |
| 66 | ! is_plugin_active( $plugin['File'] ) |
| 67 | ) { |
| 68 | return true; |
| 69 | } |
| 70 | } |
| 71 | } |
| 72 | |
| 73 | return false; |
| 74 | } |
| 75 | |
| 76 | public function get() { |
| 77 | return get_option( self::COMPONENTS_CACHE_OPTION_KEY ); |
| 78 | } |
| 79 | |
| 80 | public function get_plugins() { |
| 81 | if ( ! function_exists( 'get_plugins' ) ) { |
| 82 | require_once ABSPATH . 'wp-admin/includes/plugin.php'; |
| 83 | } |
| 84 | |
| 85 | return get_plugins(); |
| 86 | } |
| 87 | } |