Code Coverage |
||||||||||
Lines |
Functions and Methods |
Classes and Traits |
||||||||
Total | |
0.00% |
0 / 43 |
|
0.00% |
0 / 6 |
CRAP | |
0.00% |
0 / 1 |
Jetpack | |
0.00% |
0 / 43 |
|
0.00% |
0 / 6 |
132 | |
0.00% |
0 / 1 |
register_hooks | |
0.00% |
0 / 5 |
|
0.00% |
0 / 1 |
2 | |||
connected | |
0.00% |
0 / 7 |
|
0.00% |
0 / 1 |
2 | |||
module_enabled | |
0.00% |
0 / 7 |
|
0.00% |
0 / 1 |
2 | |||
module_disabled | |
0.00% |
0 / 7 |
|
0.00% |
0 / 1 |
2 | |||
publicize | |
0.00% |
0 / 9 |
|
0.00% |
0 / 1 |
6 | |||
detect_plugin_activation | |
0.00% |
0 / 8 |
|
0.00% |
0 / 1 |
30 |
1 | <?php |
2 | |
3 | namespace NewfoldLabs\WP\Module\Data\Listeners; |
4 | |
5 | use function NewfoldLabs\WP\ModuleLoader\container; |
6 | |
7 | /** |
8 | * Monitors Jetpack events |
9 | */ |
10 | class Jetpack extends Listener { |
11 | |
12 | /** |
13 | * Brand code constants |
14 | * |
15 | * @var brand_code |
16 | */ |
17 | private $brand_code = array( |
18 | 'bluehost' => '86241', |
19 | 'hostgator' => '57686', |
20 | 'web' => '86239', |
21 | 'crazy-domains' => '57687', |
22 | 'hostgator-india' => '57686', |
23 | 'bluehost-india' => '86241', |
24 | 'hostgator-latam' => '57686', |
25 | 'default' => '86240', |
26 | ); |
27 | |
28 | /** |
29 | * Register the hooks for the listener |
30 | * |
31 | * @return void |
32 | */ |
33 | public function register_hooks() { |
34 | // Connected |
35 | add_action( 'jetpack_site_registered', array( $this, 'connected' ), 10, 3 ); |
36 | |
37 | // Module enabled/disabled |
38 | add_action( 'jetpack_pre_activate_module', array( $this, 'module_enabled' ) ); |
39 | add_action( 'jetpack_pre_deactivate_module', array( $this, 'module_disabled' ) ); |
40 | add_action( 'activated_plugin', array( $this, 'detect_plugin_activation' ), 10, 1 ); |
41 | // Publicize |
42 | add_action( 'publicize_save_meta', array( $this, 'publicize' ), 10, 4 ); |
43 | } |
44 | |
45 | /** |
46 | * Jetpack connected |
47 | * |
48 | * @param integer $id Jetpack Site ID |
49 | * @param string $secret Jetpack blog token |
50 | * @param integer|boolan $is_public Whether the site is public |
51 | * @return void |
52 | */ |
53 | public function connected( $id, $secret, $is_public ) { |
54 | $this->push( |
55 | 'jetpack_connected', |
56 | array( |
57 | 'id' => $id, |
58 | 'public' => $is_public, |
59 | ) |
60 | ); |
61 | } |
62 | |
63 | /** |
64 | * Jetpack module enabled |
65 | * |
66 | * @param string $module Name of the module |
67 | * @return void |
68 | */ |
69 | public function module_enabled( $module ) { |
70 | $this->push( |
71 | 'jetpack_module_enabled', |
72 | array( |
73 | 'label_key' => 'module', |
74 | 'module' => $module, |
75 | ) |
76 | ); |
77 | } |
78 | |
79 | /** |
80 | * Jetpack module disabled |
81 | * |
82 | * @param string $module Name of the module |
83 | * @return void |
84 | */ |
85 | public function module_disabled( $module ) { |
86 | $this->push( |
87 | 'jetpack_module_disabled', |
88 | array( |
89 | 'label_key' => 'module', |
90 | 'module' => $module, |
91 | ) |
92 | ); |
93 | } |
94 | |
95 | /** |
96 | * Post publicized |
97 | * |
98 | * @param bool $submit_post Whether to submit the post |
99 | * @param integer $post_id ID of the post being publicized |
100 | * @param string $service_name Service name |
101 | * @param array $connection Array of connection details |
102 | * @return void |
103 | */ |
104 | public function publicize( $submit_post, $post_id, $service_name, $connection ) { |
105 | // Bail if it's not being publicized |
106 | if ( ! $submit_post ) { |
107 | return; |
108 | } |
109 | $this->push( |
110 | 'jetpack_publicized', |
111 | array( |
112 | 'label_key' => 'service', |
113 | 'service' => $service_name, |
114 | ) |
115 | ); |
116 | } |
117 | |
118 | /** |
119 | * Post publicized |
120 | * |
121 | * @param bool $plugin Plugin information |
122 | * @return void |
123 | */ |
124 | public function detect_plugin_activation( $plugin ) { |
125 | $container = container(); |
126 | if ( 'jetpack/jetpack.php' === $plugin ) { |
127 | $brand = $container->plugin()->brand; |
128 | if ( empty( $brand ) || ! array_key_exists( $brand, $this->brand_code ) ) { |
129 | $brand = 'default'; |
130 | } |
131 | $jetpack_affiliate_code = get_option( 'jetpack_affiliate_code' ); |
132 | ! $jetpack_affiliate_code && |
133 | update_option( 'jetpack_affiliate_code', $this->brand_code[ $brand ] ); |
134 | } |
135 | } |
136 | } |