PluginProbe ʕ •ᴥ•ʔ
Jetpack – WP Security, Backup, Speed, & Growth / 12.6.4
Jetpack – WP Security, Backup, Speed, & Growth v12.6.4
12.0.3 12.1.3 12.2.3 12.3.2 12.4.2 12.5.2 12.6.4 12.7.3 12.8.3 12.9.5 13.0.2 13.1.5 13.2.4 13.3.3 13.4.5 13.5.2 13.6.2 13.7.2 13.8.3 13.9.2 14.0.1 14.1.1 14.2.2 14.3.1 14.4.2 14.5.1 14.6.1 14.7.1 14.8.1 14.9.2 15.0.3 15.1.2 15.2.1 15.3.2 15.4.1 15.5.1 15.6.1 15.7.2 15.8.1 15.9.2 16.0.2 16.1.3 16.2-a.5 16.2-a.3 16.1.2 16.2-a.1 16.1.1 16.1 16.1-beta 16.1-beta.2 16.1-beta.3 16.1-a.5 16.1-a.3 16.0.1 16.1-a.1 16.0 16.0-beta 16.0-a.7 16.0-a.5 15.9.1 16.0-a.3 16.0-a.1 15.9 15.9-beta 15.9-a.7 15.9-a.5 15.9-a.3 15.9-a.1 15.8 15.8-beta 15.8-a.7 15.8-a.5 5.2.5 5.3.4 5.4.4 5.5.5 5.6.5 5.7.5 5.8.4 5.9.4 6.0.4 6.1 6.1.1 6.1.2 6.1.3 6.1.4 6.1.5 6.2 6.2.1 6.2.2 6.2.3 6.2.4 6.2.5 6.3 6.3.1 6.3.2 6.3.3 6.3.4 6.3.5 6.3.6 6.3.7 6.4 6.4.1 6.4.2 6.4.3 6.4.4 6.4.5 6.4.6 6.5 6.5.1 6.5.2 6.5.3 6.5.4 6.6 6.6.1 6.6.2 6.6.3 6.6.4 6.6.5 6.7 6.7.1 6.7.2 6.7.3 6.7.4 6.8 6.8.1 6.8.2 6.8.3 6.8.4 6.8.5 6.9 6.9.1 6.9.2 6.9.3 6.9.4 7.0 7.0.1 7.0.2 7.0.3 7.0.4 7.0.5 7.1 7.1.1 7.1.2 7.1.3 7.1.4 7.1.5 7.2 7.2.1 7.2.1.1 7.2.2 7.2.3 7.2.4 7.2.5 7.3 7.3.0.1 7.3.1 7.3.1.1 7.3.2 7.3.3 7.3.4 7.3.5 7.4 7.4.1 7.4.2 7.4.3 7.4.4 7.4.5 7.5 7.5.0.1 7.5.1 7.5.2 7.5.3 7.5.4 7.5.5 7.5.6 7.5.7 7.6 7.6.1 7.6.2 7.6.3 7.6.4 7.7 7.7.1 7.7.2 7.7.3 7.7.4 7.7.5 7.7.6 7.8 7.8.1 7.8.2 7.8.3 7.8.4 7.9 7.9.1 7.9.2 7.9.3 7.9.4 8.0 8.0.1 8.0.2 8.0.3 8.1 8.1.1 8.1.2 8.1.3 8.1.4 8.2 8.2.0.1 8.2.1 8.2.2 8.2.3 8.2.4 8.2.5 8.2.6 8.3 8.3.1 8.3.2 8.3.3 8.4 8.4.1 8.4.2 8.4.3 8.4.4 8.4.5 8.5 8.5.1 8.5.2 8.5.3 8.6 8.6.1 8.6.2 8.6.3 8.6.4 8.7 8.7.0.1 8.7.1 8.7.2 8.7.3 8.7.4 8.8 8.8.1 8.8.2 8.8.3 8.8.4 8.8.5 8.9 8.9.1 8.9.2 8.9.3 8.9.4 9.0 9.0.1 9.0.2 9.0.3 9.0.4 9.0.5 9.1 9.1.1 9.1.2 9.1.3 9.2 9.2.1 9.2.2 9.2.3 9.2.4 9.3 9.3.1 9.3.2 9.3.3 9.3.4 9.3.5 9.4 9.4.1 9.4.2 9.4.3 9.4.4 9.5 9.5.1 9.5.2 9.5.3 9.5.4 9.5.5 9.6 9.6.1 9.6.2 9.6.3 9.6.4 9.7 9.7.1 9.7.2 15.7-beta.2 9.7.3 15.7.1 9.8 15.8-a.1 9.8.1 15.8-a.3 9.8.2 2.0.9 9.8.3 2.1.7 9.9 2.2.10 9.9.1 2.3.10 9.9.2 2.4.7 9.9.3 2.5.5 2.6.6 2.7.5 2.8.5 2.9.6 3.0.6 3.1.5 3.2.5 3.3.6 3.4.6 3.5.6 3.6.4 3.7.5 3.8.5 3.9.10 4.0.7 4.1.4 4.2.5 4.3.5 4.4.5 4.5.3 4.6.3 4.7.4 4.8.5 4.9.3 5.0.3 5.1.4 trunk 10.0 10.0.1 10.0.2 10.1 10.1.1 10.1.2 10.2 10.2.1 10.2.2 10.2.3 10.3 10.3.1 10.3.2 10.4 10.4.1 10.4.2 10.5 10.5.1 10.5.2 10.5.3 10.6 10.6.1 10.6.2 10.7 10.7.1 10.7.2 10.8 10.8.1 10.8.2 10.9 10.9.1 10.9.2 10.9.3 11.0 11.0.1 11.0.2 11.1 11.1.1 11.1.2 11.1.3 11.1.4 11.2 11.2.1 11.2.2 11.3 11.3.1 11.3.2 11.3.3 11.3.4 11.4 11.4.1 11.4.2 11.5 11.5.1 11.5.2 11.5.3 11.6 11.6.1 11.6.2 11.7 11.7.1 11.7.2 11.7.3 11.8 11.8.3 11.8.4 11.8.5 11.8.6 11.9 11.9.1 11.9.2 11.9.3 12.0 12.0.1 12.0.2 12.1 12.1.1 12.1.2 12.2 12.2.1 12.2.2 12.3 12.3.1 12.4 12.4.1 12.5 12.5.1 12.6 12.6.1 12.6.2 12.6.3 12.7 12.7.1 12.7.2 12.8 12.8.1 12.8.2 12.9 12.9.1 12.9.2 12.9.3 12.9.4 13.0 13.0.1 13.1 13.1.1 13.1.2 13.1.3 13.1.4 13.2 13.2.1 13.2.2 13.2.3 13.3 13.3.1 13.3.2 13.4 13.4.1 13.4.2 13.4.3 13.4.4 13.5 13.5.1 13.6 13.6.1 13.7 13.7.1 13.8 13.8.1 13.8.2 13.9 13.9.1 14.0 14.1 14.2 14.2.1 14.3 14.4 14.4.1 14.5 14.6 14.7 14.8 14.9 14.9.1 15.0 15.0.1 15.0.2 15.1 15.1.1 15.2 15.3 15.3.1 15.4 15.5 15.6 15.7 15.7-a.1 15.7-a.3 15.7-a.5 15.7-a.7 15.7-beta
jetpack / vendor / jetpack-autoloader / class-plugin-locator.php
jetpack / vendor / jetpack-autoloader Last commit date
class-autoloader-handler.php 2 years ago class-autoloader-locator.php 2 years ago class-autoloader.php 2 years ago class-container.php 2 years ago class-hook-manager.php 2 years ago class-latest-autoloader-guard.php 2 years ago class-manifest-reader.php 2 years ago class-path-processor.php 2 years ago class-php-autoloader.php 2 years ago class-plugin-locator.php 2 years ago class-plugins-handler.php 2 years ago class-shutdown-handler.php 2 years ago class-version-loader.php 2 years ago class-version-selector.php 2 years ago
class-plugin-locator.php
157 lines
1 <?php
2 /**
3 * This file was automatically generated by automattic/jetpack-autoloader.
4 *
5 * @package automattic/jetpack-autoloader
6 */
7
8 namespace Automattic\Jetpack\Autoloader\jpf11009ded9fc4592b6a05b61ce272b3c_jetpackⓥ12_6_2;
9
10 // phpcs:ignore
11
12 /**
13 * This class scans the WordPress installation to find active plugins.
14 */
15 class Plugin_Locator {
16
17 /**
18 * The path processor for finding plugin paths.
19 *
20 * @var Path_Processor
21 */
22 private $path_processor;
23
24 /**
25 * The constructor.
26 *
27 * @param Path_Processor $path_processor The Path_Processor instance.
28 */
29 public function __construct( $path_processor ) {
30 $this->path_processor = $path_processor;
31 }
32
33 /**
34 * Finds the path to the current plugin.
35 *
36 * @return string $path The path to the current plugin.
37 *
38 * @throws \RuntimeException If the current plugin does not have an autoloader.
39 */
40 public function find_current_plugin() {
41 // Escape from `vendor/__DIR__` to root plugin directory.
42 $plugin_directory = dirname( dirname( __DIR__ ) );
43
44 // Use the path processor to ensure that this is an autoloader we're referencing.
45 $path = $this->path_processor->find_directory_with_autoloader( $plugin_directory, array() );
46 if ( false === $path ) {
47 throw new \RuntimeException( 'Failed to locate plugin ' . $plugin_directory );
48 }
49
50 return $path;
51 }
52
53 /**
54 * Checks a given option for plugin paths.
55 *
56 * @param string $option_name The option that we want to check for plugin information.
57 * @param bool $site_option Indicates whether or not we want to check the site option.
58 *
59 * @return array $plugin_paths The list of absolute paths we've found.
60 */
61 public function find_using_option( $option_name, $site_option = false ) {
62 $raw = $site_option ? get_site_option( $option_name ) : get_option( $option_name );
63 if ( false === $raw ) {
64 return array();
65 }
66
67 return $this->convert_plugins_to_paths( $raw );
68 }
69
70 /**
71 * Checks for plugins in the `action` request parameter.
72 *
73 * @param string[] $allowed_actions The actions that we're allowed to return plugins for.
74 *
75 * @return array $plugin_paths The list of absolute paths we've found.
76 */
77 public function find_using_request_action( $allowed_actions ) {
78 // phpcs:disable WordPress.Security.NonceVerification.Recommended
79
80 /**
81 * Note: we're not actually checking the nonce here because it's too early
82 * in the execution. The pluggable functions are not yet loaded to give
83 * plugins a chance to plug their versions. Therefore we're doing the bare
84 * minimum: checking whether the nonce exists and it's in the right place.
85 * The request will fail later if the nonce doesn't pass the check.
86 */
87 if ( empty( $_REQUEST['_wpnonce'] ) ) {
88 return array();
89 }
90
91 // phpcs:ignore WordPress.Security.ValidatedSanitizedInput.InputNotSanitized -- Validated just below.
92 $action = isset( $_REQUEST['action'] ) ? wp_unslash( $_REQUEST['action'] ) : false;
93 if ( ! in_array( $action, $allowed_actions, true ) ) {
94 return array();
95 }
96
97 $plugin_slugs = array();
98 switch ( $action ) {
99 case 'activate':
100 case 'deactivate':
101 if ( empty( $_REQUEST['plugin'] ) ) {
102 break;
103 }
104
105 // phpcs:ignore WordPress.Security.ValidatedSanitizedInput.InputNotSanitized -- Validated by convert_plugins_to_paths.
106 $plugin_slugs[] = wp_unslash( $_REQUEST['plugin'] );
107 break;
108
109 case 'activate-selected':
110 case 'deactivate-selected':
111 if ( empty( $_REQUEST['checked'] ) ) {
112 break;
113 }
114
115 // phpcs:ignore WordPress.Security.ValidatedSanitizedInput.InputNotSanitized -- Validated by convert_plugins_to_paths.
116 $plugin_slugs = wp_unslash( $_REQUEST['checked'] );
117 break;
118 }
119
120 // phpcs:enable WordPress.Security.NonceVerification.Recommended
121 return $this->convert_plugins_to_paths( $plugin_slugs );
122 }
123
124 /**
125 * Given an array of plugin slugs or paths, this will convert them to absolute paths and filter
126 * out the plugins that are not directory plugins. Note that array keys will also be included
127 * if they are plugin paths!
128 *
129 * @param string[] $plugins Plugin paths or slugs to filter.
130 *
131 * @return string[]
132 */
133 private function convert_plugins_to_paths( $plugins ) {
134 if ( ! is_array( $plugins ) || empty( $plugins ) ) {
135 return array();
136 }
137
138 // We're going to look for plugins in the standard directories.
139 $path_constants = array( WP_PLUGIN_DIR, WPMU_PLUGIN_DIR );
140
141 $plugin_paths = array();
142 foreach ( $plugins as $key => $value ) {
143 $path = $this->path_processor->find_directory_with_autoloader( $key, $path_constants );
144 if ( $path ) {
145 $plugin_paths[] = $path;
146 }
147
148 $path = $this->path_processor->find_directory_with_autoloader( $value, $path_constants );
149 if ( $path ) {
150 $plugin_paths[] = $path;
151 }
152 }
153
154 return $plugin_paths;
155 }
156 }
157