AdminSubscriber.php
1.51 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
<?php
namespace WP_Rocket\Engine\Preload\Links;
use WP_Rocket\Admin\Options_Data;
use WP_Rocket\Event_Management\Subscriber_Interface;
class AdminSubscriber implements Subscriber_Interface {
/**
* Options Data instance
*
* @var Options_Data
*/
private $options;
/**
* Instantiate the class.
*
* @param Options_Data $options Options Data instance.
*/
public function __construct( Options_Data $options ) {
$this->options = $options;
}
/**
* Events this subscriber wants to listen to.
*
* @return array
*/
public static function get_subscribed_events() {
return [
'rocket_first_install_options' => 'add_option',
'rocket_plugins_to_deactivate' => 'add_incompatible_plugins',
];
}
/**
* Adds the option key & value to the WP Rocket options array
*
* @since 3.7
*
* @param array $options WP Rocket options array.
* @return array
*/
public function add_option( $options ) {
$options = (array) $options;
$options['preload_links'] = 1;
return $options;
}
/**
* Adds plugins incompatible with preload links to our notice.
*
* @since 3.7
*
* @param array $plugins Array of incompatible plugins.
* @return array
*/
public function add_incompatible_plugins( $plugins ) {
if ( ! (bool) $this->options->get( 'preload_links', 0 ) ) {
return $plugins;
}
$plugins['flying-pages'] = 'flying-pages/flying-pages.php';
$plugins['instant-page'] = 'instant-page/instantpage.php';
$plugins['quicklink'] = 'quicklink/quicklink.php';
return $plugins;
}
}