PluginProbe ʕ •ᴥ•ʔ
WPML Multilingual & Multicurrency for WooCommerce / 5.5.7
WPML Multilingual & Multicurrency for WooCommerce v5.5.7
5.5.7 5.3.8 5.3.9 5.4.3 5.4.4 5.4.5 5.5.1 5.5.1.1 5.5.2.2 5.5.2.3 5.5.3 5.5.3.1 5.5.4 5.5.5 5.5.6 trunk 0.9 1.0 1.1 1.2 1.3 1.4 1.5 2.0 2.2 2.3 2.3.1 2.3.2 3.0 3.0.1 3.1 3.2 3.2.1 3.2.2 3.3 3.3.1 3.3.2 3.3.3 3.3.4 3.4 3.4.1 3.4.2 3.4.3 3.5 3.5.1 3.5.2 3.5.3 3.5.4 3.5.5 3.6 3.6.1 3.6.10 3.6.11 3.6.2 3.6.3 3.6.4 3.6.5 3.6.5.1 3.6.6 3.6.7 3.6.8 3.6.9 3.7 3.7.1 3.7.10 3.7.11 3.7.12 3.7.13 3.7.14 3.7.15 3.7.16 3.7.2 3.7.3 3.7.4 3.7.5 3.7.6 3.7.7 3.7.8 3.7.9 3.8.0 3.8.1 3.8.2 3.8.3 3.8.4 3.8.5 3.8.6 3.9.0 3.9.1 3.9.1.1 3.9.2 3.9.3 3.9.4 3.9.5 4.0.0 4.0.1 4.0.2 4.0.3 4.0.4 4.1.0 4.1.1 4.1.2 4.1.3 4.1.4 4.10.0 4.10.1 4.10.2 4.10.3 4.10.4 4.11.2 4.11.3.2 4.11.5 4.11.6 4.12.1 4.12.4 4.12.5 4.12.6 4.2.0 4.2.0.1 4.2.1 4.2.1.1 4.2.10 4.2.2 4.2.3 4.2.4 4.2.5 4.2.6 4.2.7 4.2.7.1 4.2.8 4.2.8.1 4.2.9 4.3.0 4.3.1 4.3.2 4.3.2.1 4.3.3 4.3.4 4.3.5 4.3.6 4.3.7 4.4.0 4.4.1 4.4.2 4.4.2.1 4.5.0 4.6.0 4.6.1 4.6.2 4.6.2.1 4.6.3 4.6.5 4.6.6 4.6.7 4.7.0 4.7.1 4.7.2 4.7.3 4.7.4 4.7.5 4.7.6 4.7.7 4.7.8 4.7.9 4.8.0 4.9.0 4.9.1 5.0.1 5.0.2 5.1.1 5.1.2 5.1.3 5.2.0 5.2.1 5.3.2 5.3.3.1 5.3.4 5.3.5 5.3.6 5.3.7
woocommerce-multilingual / vendor / otgs / installer / includes / class-otgs-installer-plugin-finder.php
woocommerce-multilingual / vendor / otgs / installer / includes Last commit date
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-plugin-finder.php
161 lines
1 <?php
2
3 class OTGS_Installer_Plugin_Finder {
4
5 private $plugin_factory;
6 private $installer;
7 private $_repositories;
8 private $_plugins;
9
10 private $installed_plugins;
11
12 public function __construct( OTGS_Installer_Plugin_Factory $plugin_factory, $installer = null ) {
13 $this->plugin_factory = $plugin_factory;
14 $this->installer = $installer && $installer instanceof WP_Installer ? $installer : null;
15 }
16
17 private function repositories() {
18 if ( null === $this->_repositories ) {
19 $installer = $this->installer ?: OTGS_Installer();
20 $settings = $installer->get_settings() ?? [];
21 $this->_repositories = $settings['repositories'];
22 }
23
24 return $this->_repositories;
25 }
26
27 private function plugins() {
28 if ( null === $this->_plugins ) {
29 $this->_plugins = array();
30 foreach ( $this->repositories() as $repo_key => $repository ) {
31 foreach ( $repository['data']['downloads']['plugins'] as $slug => $plugin ) {
32 $plugin_id = $this->get_installed_plugin_id_by_slug( $plugin['slug'] );
33
34 if ( ! $plugin_id ) {
35 $plugin_id = $this->get_installed_plugin_id_by_name( $plugin['name'] );
36 }
37
38 $this->_plugins[] = $this->plugin_factory->create( array(
39 'name' => $plugin['name'],
40 'slug' => $plugin['slug'],
41 'description' => $plugin['description'],
42 'changelog' => isset( $plugin['changelog'] ) ? $plugin['changelog'] : '',
43 'version' => $plugin['version'],
44 'installed_version' => isset( $this->installed_plugins[ $plugin_id ]['Version'] ) ? $this->installed_plugins[ $plugin_id ]['Version'] : null ,
45 'date' => $plugin['date'],
46 'url' => $plugin['url'],
47 'free_on_wporg' => isset( $plugin['free-on-wporg'] ) ? $plugin['free-on-wporg'] : '',
48 'fallback_on_wporg' => isset( $plugin['fallback-free-on-wporg'] ) ? $plugin['fallback-free-on-wporg'] : '',
49 'basename' => $plugin['basename'],
50 'external_repo' => isset( $plugin['external-repo'] ) ? $plugin['external-repo'] : '',
51 'is_lite' => isset( $plugin['is-lite'] ) ? $plugin['is-lite'] : '',
52 'repo' => $repo_key,
53 'id' => $plugin_id,
54 'channel' => isset( $plugin['channel'] ) ? $plugin['channel'] : '',
55 'tested' => isset( $plugin['tested'] ) ? $plugin['tested'] : null,
56 ) );
57 }
58 }
59 }
60
61 return $this->_plugins;
62 }
63
64 public function get_all() {
65 return $this->plugins();
66 }
67
68 public function getLocalPluginVersions() {
69 $versions = [];
70
71 foreach ( $this->plugins() as $plugin ) {
72 $installed_version = $plugin->get_installed_version();
73 if ( $installed_version ) {
74 $versions[ $plugin->get_slug() ] = $installed_version;
75 }
76 }
77
78 return $versions;
79 }
80
81 public function get_otgs_installed_plugins_by_repository() {
82 return $this->getOTGSInstalledPluginsByRepository();
83 }
84
85 public function getOTGSInstalledPluginsByRepository( $withActiveFlag = false, $withVersions = false ) {
86 $installed_plugins = [];
87
88 foreach ( $this->plugins() as $plugin ) {
89 if ( $plugin->get_installed_version() ) {
90 $pluginInfo = [
91 'id' => $plugin->get_id(),
92 'slug' => $plugin->get_slug(),
93 'name' => $plugin->get_name(),
94 ];
95
96 if ( $withActiveFlag ) {
97 $pluginInfo['active'] = is_plugin_active( $plugin->get_id() );
98 }
99
100 if ( $withVersions ) {
101 $pluginInfo['current_version'] = $plugin->get_version();
102 $pluginInfo['installed_version'] = $plugin->get_installed_version();
103 }
104
105 $installed_plugins[ $plugin->get_repo() ][] = $pluginInfo;
106 }
107 }
108
109 return $installed_plugins;
110 }
111
112 public function get_plugin( $slug, $repo = '' ) {
113 foreach ( $this->plugins() as $plugin ) {
114 if ( $slug === $plugin->get_slug() ) {
115
116 if ( ! $repo || $plugin->get_repo() === $repo ) {
117 return $plugin;
118 }
119 }
120 }
121
122 return null;
123 }
124
125 public function get_plugin_by_name( $name ) {
126 foreach ( $this->plugins() as $plugin ) {
127 if ( $name === strip_tags( $plugin->get_name() ) ) {
128 return $plugin;
129 }
130 }
131
132 return null;
133 }
134
135 private function get_installed_plugin_id_by_slug( $slug ) {
136 foreach ( $this->get_installed_plugins() as $plugin_id => $plugin ) {
137 $plugin_slug = explode( '/', $plugin_id );
138
139 if ( $slug === $plugin_slug[0] ) {
140 return $plugin_id;
141 }
142 }
143
144 return null;
145 }
146
147 private function get_installed_plugins() {
148 if ( ! $this->installed_plugins ) {
149 $this->installed_plugins = get_plugins();
150 }
151
152 return $this->installed_plugins;
153 }
154
155 private function get_installed_plugin_id_by_name( $name ) {
156 $plugin_id = array_keys( wp_list_filter( $this->get_installed_plugins(), array( 'Name' => $name ) ) );
157
158 return current( $plugin_id );
159 }
160 }
161