| @@ -70,9 +70,10 @@ | ||
| 70 | 70 | $slug = $plugin; |
| 71 | 71 | $pluginData = get_plugin_data(WP_PLUGIN_DIR . '/' . $plugin, false, false); |
| 72 | 72 | |
| 73 | 73 | } elseif ($plugin instanceof Plugin_Upgrader) { |
| 74 | - if ($slug = $plugin->plugin_info()) { | |
| 74 | + $slug = $plugin->plugin_info(); | |
| 75 | + if ($slug) { | |
| 75 | 76 | $pluginData = get_plugin_data($plugin->result['local_destination'] . '/' . $slug, false, false); |
| 76 | 77 | } |
| 77 | 78 | } |
| 78 | 79 | |
| @@ -98,9 +99,10 @@ | ||
| 98 | 99 | * @return void |
| 99 | 100 | */ |
| 100 | 101 | public function pluginStateChanged(string $state, string $slug, bool $networkWide): void |
| 101 | 102 | { |
| 102 | - if ($plugin = $this->getPluginData($slug)) { | |
| 103 | + $plugin = $this->getPluginData($slug); | |
| 104 | + if ($plugin) { | |
| 103 | 105 | Logtivity::log() |
| 104 | 106 | ->setAction('Plugin ' . $state) |
| 105 | 107 | ->setContext($plugin['Name']) |
| 106 | 108 | ->addMeta('Version', $plugin['Version']) |
| @@ -105,8 +107,9 @@ | ||
| 105 | 107 | ->setContext($plugin['Name']) |
| 106 | 108 | ->addMeta('Version', $plugin['Version']) |
| 107 | 109 | ->addMeta('Slug', $plugin['Slug']) |
| 108 | 110 | ->addMeta('Network Wide', $networkWide ? 'Yes' : 'No') |
| 111 | + ->addInventory() | |
| 109 | 112 | ->send(); |
| 110 | 113 | } |
| 111 | 114 | } |
| 112 | 115 | |
| @@ -227,9 +230,10 @@ | ||
| 227 | 230 | if ( |
| 228 | 231 | isset($this->capturedPluginData[$slug]) == false |
| 229 | 232 | && $this->pluginFileExists($slug) |
| 230 | 233 | ) { |
| 231 | - if ($pluginData = $this->getPluginData($slug)) { | |
| 234 | + $pluginData = $this->getPluginData($slug); | |
| 235 | + if ($pluginData) { | |
| 232 | 236 | $this->capturedPluginData[$slug] = $pluginData; |
| 233 | 237 | } |
| 234 | 238 | } |
| 235 | 239 | } |
| @@ -289,8 +293,9 @@ | ||
| 289 | 293 | ->setContext($plugin['Name']) |
| 290 | 294 | ->addMeta('Slug', $plugin['Slug']) |
| 291 | 295 | ->addMeta('Version', $plugin['Version']) |
| 292 | 296 | ->addMeta('Deletion Successful', $deleted ? 'Yes' : 'No') |
| 297 | + ->addInventory() | |
| 293 | 298 | ->send(); |
| 294 | 299 | } |
| 295 | 300 | } |
| 296 | 301 | |
| @@ -308,9 +313,10 @@ | ||
| 308 | 313 | * @return bool|WP_Error |
| 309 | 314 | */ |
| 310 | 315 | public function savePreUpdateVersion($response, array $hookExtra) |
| 311 | 316 | { |
| 312 | - if ($slug = $hookExtra['plugin'] ?? null) { | |
| 317 | + $slug = $hookExtra['plugin'] ?? null; | |
| 318 | + if ($slug) { | |
| 313 | 319 | $this->capturePluginData($slug); |
| 314 | 320 | } else { |
| 315 | 321 | $this->captureAllPluginData(); |
| 316 | 322 | } |
| @@ -367,9 +373,10 @@ | ||
| 367 | 373 | $bulk = $options['bulk'] ?? false; |
| 368 | 374 | $plugins = $this->getPluginList($upgrader, $options); |
| 369 | 375 | |
| 370 | 376 | foreach ($plugins as $plugin) { |
| 371 | - if ($pluginData = $this->getPluginData($plugin)) { | |
| 377 | + $pluginData = $this->getPluginData($plugin); | |
| 378 | + if ($pluginData) { | |
| 372 | 379 | $log = Logtivity::log() |
| 373 | 380 | ->setAction('Plugin ' . $action) |
| 374 | 381 | ->setContext($pluginData['Name']) |
| 375 | 382 | ->addMeta('Slug', $pluginData['Slug']) |
| @@ -380,8 +387,9 @@ | ||
| 380 | 387 | $log->addMeta('Old Version', $oldVersion); |
| 381 | 388 | } |
| 382 | 389 | |
| 383 | 390 | $log->addMeta('Bulk', $bulk ? 'Yes' : 'No') |
| 391 | + ->addInventory() | |
| 384 | 392 | ->send(); |
| 385 | 393 | } |
| 386 | 394 | } |
| 387 | 395 | } |
| @@ -392,11 +400,19 @@ | ||
| 392 | 400 | * @return array |
| 393 | 401 | */ |
| 394 | 402 | public function pluginFileModified(array $defaultTypes): array |
| 395 | 403 | { |
| 396 | - $action = sanitize_text_field($_POST['action'] ?? null); | |
| 397 | - $plugin = sanitize_text_field($_POST['plugin'] ?? null); | |
| 398 | - $file = sanitize_text_field($_REQUEST['file'] ?? null); | |
| 404 | + // phpcs:disable WordPress.Security.NonceVerification.Missing -- Passive logger reads core plugin-editor request after WordPress validates it. | |
| 405 | + $action = isset($_POST['action']) | |
| 406 | + ? sanitize_text_field(wp_unslash($_POST['action'])) | |
| 407 | + : null; | |
| 408 | + $plugin = isset($_POST['plugin']) | |
| 409 | + ? sanitize_text_field(wp_unslash($_POST['plugin'])) | |
| 410 | + : null; | |
| 411 | + $file = isset($_REQUEST['file']) | |
| 412 | + ? sanitize_text_field(wp_unslash($_REQUEST['file'])) | |
| 413 | + : null; | |
| 414 | + // phpcs:enable WordPress.Security.NonceVerification.Missing | |
| 399 | 415 | |
| 400 | 416 | if ($file && $plugin && $action == 'edit-theme-plugin-file') { |
| 401 | 417 | $pluginData = $this->getPluginData($plugin); |
| 402 | 418 | |