PluginProbe
QuadMenu – Mega Menu / 3.3.8
QuadMenu – Mega Menu v3.3.8
3.3.8 3.3.7 3.3.6 trunk 1.8.4 1.8.5 1.8.7 1.8.8 1.8.9 1.9.0 1.9.2 1.9.3 1.9.4 1.9.5 1.9.6 1.9.7 1.9.8 1.9.9 2.0.0 2.0.1 2.0.2 2.0.3 2.0.4 2.0.5 2.0.6 All 88 releases
quadmenu / vendor / franmastromarino / wp-plugin-feedback / src / Scripts.php

Scripts.php in QuadMenu – Mega Menu 3.3.8, at vendor/franmastromarino/wp-plugin-feedback/src/Scripts.php

63 lines 1.7 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2
3 namespace QuadLayers\PluginFeedback;
4
5 class Scripts
6 {
7
8 /** @var Scripts|null */
9 public static $instance;
10 /** @var array */
11 public static $plugins;
12 /** @var array */
13 public static $options;
14
15 private function __construct(array $plugins = [], array $options = [])
16 {
17 self::$plugins = $plugins;
18 self::$options = $options;
19 add_action('admin_enqueue_scripts', [self::class, 'load']);
20 }
21
22 public static function instance(array $plugins, array $options = [])
23 {
24 if (is_null(self::$instance)) {
25 self::$instance = new self($plugins, $options);
26 }
27 return self::$instance;
28 }
29
30 public static function load(): void
31 {
32 global $pagenow;
33
34 // Only load on the plugins page
35 if ($pagenow !== 'plugins.php') {
36 return;
37 }
38
39 $feedback = include plugin_dir_path(__FILE__) . '../build/js/index.asset.php';
40
41 wp_enqueue_style('wp-components');
42 wp_enqueue_script('quadlayers-plugin-feedback', plugins_url('../build/js/index.js', __FILE__), $feedback['dependencies'], '1.0.0', true);
43
44 // Prepare plugin options for frontend
45 $plugin_data = [];
46 foreach (self::$plugins as $plugin) {
47 $plugin_data[$plugin] = [
48 'plugin' => $plugin,
49 'options' => isset(self::$options[$plugin]) ? self::$options[$plugin] : []
50 ];
51 }
52
53 wp_localize_script(
54 'quadlayers-plugin-feedback',
55 'quadlayersPluginFeedback',
56 [
57 'nonce' => wp_create_nonce('quadlayers_send_feedback_nonce'),
58 'plugins' => $plugin_data
59 ]
60 );
61 }
62 }
63