PluginProbe ʕ •ᴥ•ʔ
MailPoet – Newsletters, Email Marketing, and Automation / 5.35.1
MailPoet – Newsletters, Email Marketing, and Automation v5.35.1
5.36.1 5.36.0 5.35.1 5.35.0 5.34.3 5.34.2 5.34.1 5.34.0 5.33.1 5.33.0 5.32.0 5.31.0 5.30.0 5.29.0 5.28.1 5.28.0 5.27.0 5.26.0 5.26.1 5.25.0 5.24.0 4.43.0 4.43.1 4.44.0 4.44.1 4.45.0 4.46.0 4.47.0 4.48.0 4.48.1 4.48.2 4.49.0 4.49.1 4.5.0 4.5.1 4.5.2 4.50.0 4.50.1 4.51.0 4.51.1 4.51.2 4.52.0 4.53.0 4.54.0 4.55.0 4.56.0 4.57.0 4.58.0 4.58.1 4.58.2 4.6.0 4.6.1 4.6.2 4.7.0 4.7.1 4.8.0 4.8.1 4.9.0 5.0.0 5.0.1 5.0.2 5.1.0 5.1.1 5.10.0 5.10.1 5.11.0 5.12.0 5.12.1 5.12.10 5.12.11 5.12.12 5.12.13 5.12.2 5.12.3 5.12.4 5.12.5 5.12.6 5.12.7 5.12.8 5.12.9 5.13.0 5.13.1 5.13.2 5.14.0 5.14.1 5.14.2 5.14.3 5.15.0 5.15.1 5.16.0 5.16.1 5.16.2 5.16.3 5.16.4 5.17.0 5.17.1 5.17.2 5.17.3 5.17.4 5.17.5 5.17.6 5.18.0 5.19.0 5.2.0 5.2.1 5.2.2 5.2.3 5.20.0 5.21.0 5.21.1 5.21.2 5.21.3 5.22.0 5.22.1 5.22.2 5.22.3 5.22.4 5.23.0 5.23.1 5.23.2 5.3.0 5.3.1 5.3.2 5.3.3 5.3.4 5.3.5 5.3.6 5.3.7 5.4.0 5.4.1 5.4.2 5.5.0 5.5.1 5.5.2 5.6.0 5.6.1 5.6.2 5.6.3 5.6.4 5.7.0 5.7.1 5.8.0 5.8.1 5.9.0 3.0.0-beta.15 3.7.1 3.0.0-beta.16 3.7.2 3.0.0-beta.17 3.7.3 3.0.0-beta.18 3.7.4 3.0.0-beta.19 3.7.5 3.0.0-beta.2 3.7.6 3.0.0-beta.20 3.7.8 3.0.0-beta.21 3.70.0 3.0.0-beta.22 3.71.0 3.0.0-beta.23 3.71.1 3.0.0-beta.23.1 3.71.2 3.0.0-beta.23.2 3.71.3 3.0.0-beta.24 3.72.0 3.0.0-beta.25 3.73.0 3.0.0-beta.26 3.73.1 3.0.0-beta.27 3.73.2 3.0.0-beta.28 3.74.0 3.0.0-beta.29 3.74.1 3.0.0-beta.3 3.74.2 3.0.0-beta.30 3.74.3 3.0.0-beta.31 3.75.0 3.0.0-beta.32 3.75.1 3.0.0-beta.33 3.76.0 3.0.0-beta.33.1 3.77.0 3.0.0-beta.34.0.0 3.77.1 3.0.0-beta.36.0.0 3.78.0 3.0.0-beta.36.0.1 3.79.0 3.0.0-beta.36.2.0 3.8 3.0.0-beta.36.3.0 3.8.1 3.0.0-beta.36.3.1 3.8.2 3.0.0-beta.37.0.0 3.8.3 3.0.0-beta.4 3.8.4 3.0.0-beta.5 3.8.5 3.0.0-beta.6 3.8.6 3.0.0-beta.7 3.80.0 3.0.0-beta.7.1 3.81.0 3.0.0-beta.8 3.82.0 3.0.0-beta.9 3.83.0 3.0.0-rc.1.0.0 3.84.0 3.0.0-rc.1.0.1 3.84.1 3.0.0-rc.1.0.2 3.85.0 3.0.0-rc.1.0.3 3.85.1 3.0.0-rc.1.0.4 3.86.0 3.0.0-rc.2.0.0 3.87.0 3.0.0-rc.2.0.1 3.87.1 3.0.0-rc.2.0.2 3.87.2 3.0.0-rc.2.0.3 3.88.0 3.0.1 3.88.1 3.0.2 3.88.2 3.0.3 3.89.0 3.0.4 3.89.1 3.0.5 3.89.2 3.0.6 3.89.3 3.0.7 3.89.4 3.0.8 3.9.0 3.0.9 3.9.1 3.1.0 3.90.0 3.10 3.90.1 3.10.1 3.90.2 3.100.0 3.91.0 3.100.1 3.91.1 3.100.2 3.92.0 3.101.0 3.92.1 3.101.1 3.93.0 3.102.0 3.93.1 3.102.1 3.94.0 3.103.0 3.95.0 3.103.1 3.95.1 3.11.0 3.96.0 3.11.1 3.96.1 3.11.2 3.97.0 3.11.3 3.98.0 3.11.4 3.98.1 3.11.5 3.99.0 3.12.0 3.99.1 3.12.1 4.0.0 3.13.0 4.0.1 3.14.0 4.1.0 3.14.1 4.1.1 3.15.0 4.10.0 3.16.0 4.11.0 3.16.1 4.11.1 3.16.2 4.12.0 3.16.3 4.12.1 3.17.0 4.12.2 3.17.1 4.13.0 3.17.2 4.14.0 3.18.0 4.15.0 3.18.1 4.16.0 3.18.2 4.17.0 3.19.0 4.17.1 3.19.1 4.18.0 3.19.2 4.18.1 3.19.3 4.19.0 3.2.0 4.2.0 3.2.1 4.20.0 3.2.2 4.20.1 3.2.3 4.20.2 3.2.4 4.21.0 3.2.5 4.22.0 3.20.0 4.22.1 3.21.0 4.22.2 3.21.1 4.23.0 3.22.0 4.24.0 3.23.0 4.25.0 3.23.1 4.26.0 3.23.2 4.26.1 3.24.0 4.27.0 3.25.0 4.28.0 3.25.1 4.29.0 3.26.0 4.3.0 3.26.1 4.3.1 3.27.0 4.30.0 3.28.0 4.31.0 3.29.0 4.31.1 3.3.0 4.32.0 3.3.1 4.33.0 3.3.2 4.34.0 3.3.3 4.35.0 3.3.4 4.35.1 3.3.5 4.36.0 3.3.6 4.37.0 3.30.0 4.38.0 3.31.0 4.39.0 3.31.1 4.4.0 3.32.0 4.40.0 3.32.1 4.41.0 3.32.2 4.41.1 3.33.0 4.41.2 3.34.0 4.41.3 3.34.1 4.42.0 3.34.2 4.42.1 3.34.3 3.34.4 3.35.0 3.35.1 3.35.3 3.35.4 3.36.0 3.37.0 3.37.1 3.37.2 3.37.3 3.38.0 3.38.1 3.39.0 3.39.1 3.39.2 3.4.0 3.4.1 3.4.2 3.4.3 3.4.4 3.40.0 3.40.1 3.41.0 3.41.1 3.41.2 3.42.0 3.42.1 3.42.2 3.42.3 3.43.0 3.43.1 3.44.0 3.45.0 3.45.1 3.46.0 3.46.1 3.46.10 3.46.11 3.46.12 3.46.13 3.46.14 3.46.2 3.46.3 3.46.4 3.46.5 3.46.6 3.46.7 3.46.8 3.46.9 3.47.0 3.47.1 3.47.10 3.47.11 3.47.2 3.47.3 3.47.5 3.47.6 3.47.7 3.47.9 3.48.0 3.48.1 3.49.0 3.49.1 3.5.0 3.5.1 3.50.0 3.51.0 3.51.1 3.51.2 3.52.0 3.53.0 3.54.0 3.54.1 3.54.2 3.54.3 3.55.0 3.55.1 3.56.0 3.56.1 3.56.2 3.57.0 3.57.1 3.58.0 3.59.0 3.59.1 3.59.2 3.6.0 3.6.1 3.6.2 3.6.3 3.6.4 3.6.5 3.6.6 3.6.7 3.60.0 3.60.1 3.60.10 3.60.11 3.60.12 3.60.2 3.60.3 3.60.4 3.60.6 3.60.7 3.60.8 3.60.9 3.61.0 3.62.0 3.62.1 3.63.0 3.64.0 3.64.1 3.64.2 3.64.3 3.65.0 trunk 3.65.1 3.0.0 3.66.0 3.0.0-beta.1 3.67.0 3.0.0-beta.10 3.67.1 3.0.0-beta.11 3.68.0 3.0.0-beta.12 3.69.0 3.0.0-beta.13 3.69.1 3.0.0-beta.14 3.7.0
mailpoet / vendor / automattic / jetpack-autoloader / src / class-plugins-handler.php
mailpoet / vendor / automattic / jetpack-autoloader / src Last commit date
AutoloadFileWriter.php 11 months ago AutoloadGenerator.php 11 months ago AutoloadProcessor.php 11 months ago CustomAutoloaderPlugin.php 11 months ago ManifestGenerator.php 11 months ago autoload.php 11 months ago class-autoloader-handler.php 11 months ago class-autoloader-locator.php 11 months ago class-autoloader.php 11 months ago class-container.php 11 months ago class-hook-manager.php 11 months ago class-latest-autoloader-guard.php 11 months ago class-manifest-reader.php 11 months ago class-path-processor.php 11 months ago class-php-autoloader.php 11 months ago class-plugin-locator.php 11 months ago class-plugins-handler.php 11 months ago class-shutdown-handler.php 11 months ago class-version-loader.php 11 months ago class-version-selector.php 11 months ago index.php 11 months ago
class-plugins-handler.php
89 lines
1 <?php
2 if (!defined('ABSPATH')) exit;
3 // phpcs:ignore
4 class Plugins_Handler {
5 const TRANSIENT_KEY = 'jetpack_autoloader_plugin_paths';
6 private $plugin_locator;
7 private $path_processor;
8 public function __construct( $plugin_locator, $path_processor ) {
9 $this->plugin_locator = $plugin_locator;
10 $this->path_processor = $path_processor;
11 }
12 public function get_active_plugins( $include_deactivating, $record_unknown ) {
13 global $jetpack_autoloader_activating_plugins_paths;
14 // We're going to build a unique list of plugins from a few different sources
15 // to find all of our "active" plugins. While we need to return an integer
16 // array, we're going to use an associative array internally to reduce
17 // the amount of time that we're going to spend checking uniqueness
18 // and merging different arrays together to form the output.
19 $active_plugins = array();
20 // Make sure that plugins which have activated this request are considered as "active" even though
21 // they probably won't be present in any option.
22 if ( is_array( $jetpack_autoloader_activating_plugins_paths ) ) {
23 foreach ( $jetpack_autoloader_activating_plugins_paths as $path ) {
24 $active_plugins[ $path ] = $path;
25 }
26 }
27 // This option contains all of the plugins that have been activated.
28 $plugins = $this->plugin_locator->find_using_option( 'active_plugins' );
29 foreach ( $plugins as $path ) {
30 $active_plugins[ $path ] = $path;
31 }
32 // This option contains all of the multisite plugins that have been activated.
33 if ( is_multisite() ) {
34 $plugins = $this->plugin_locator->find_using_option( 'active_sitewide_plugins', true );
35 foreach ( $plugins as $path ) {
36 $active_plugins[ $path ] = $path;
37 }
38 }
39 // These actions contain plugins that are being activated/deactivated during this request.
40 $plugins = $this->plugin_locator->find_using_request_action( array( 'activate', 'activate-selected', 'deactivate', 'deactivate-selected' ) );
41 foreach ( $plugins as $path ) {
42 $active_plugins[ $path ] = $path;
43 }
44 // When the current plugin isn't considered "active" there's a problem.
45 // Since we're here, the plugin is active and currently being loaded.
46 // We can support this case (mu-plugins and non-standard activation)
47 // by adding the current plugin to the active list and marking it
48 // as an unknown (activating) plugin. This also has the benefit
49 // of causing a reset because the active plugins list has
50 // been changed since it was saved in the global.
51 $current_plugin = $this->plugin_locator->find_current_plugin();
52 if ( $record_unknown && ! in_array( $current_plugin, $active_plugins, true ) ) {
53 $active_plugins[ $current_plugin ] = $current_plugin;
54 $jetpack_autoloader_activating_plugins_paths[] = $current_plugin;
55 }
56 // When deactivating plugins aren't desired we should entirely remove them from the active list.
57 if ( ! $include_deactivating ) {
58 // These actions contain plugins that are being deactivated during this request.
59 $plugins = $this->plugin_locator->find_using_request_action( array( 'deactivate', 'deactivate-selected' ) );
60 foreach ( $plugins as $path ) {
61 unset( $active_plugins[ $path ] );
62 }
63 }
64 // Transform the array so that we don't have to worry about the keys interacting with other array types later.
65 return array_values( $active_plugins );
66 }
67 public function get_cached_plugins() {
68 $cached = get_transient( self::TRANSIENT_KEY );
69 if ( ! is_array( $cached ) || empty( $cached ) ) {
70 return array();
71 }
72 // We need to expand the tokens to an absolute path for this webserver.
73 return array_map( array( $this->path_processor, 'untokenize_path_constants' ), $cached );
74 }
75 public function cache_plugins( $plugins ) {
76 // We store the paths in a tokenized form so that that webservers with different absolute paths don't break.
77 $plugins = array_map( array( $this->path_processor, 'tokenize_path_constants' ), $plugins );
78 set_transient( self::TRANSIENT_KEY, $plugins );
79 }
80 public function have_plugins_changed( $plugins ) {
81 global $jetpack_autoloader_cached_plugin_paths;
82 if ( $jetpack_autoloader_cached_plugin_paths !== $plugins ) {
83 $jetpack_autoloader_cached_plugin_paths = $plugins;
84 return true;
85 }
86 return false;
87 }
88 }
89