PluginProbe ʕ •ᴥ•ʔ
Hostinger Tools / 3.0.72
Hostinger Tools v3.0.72
3.0.72 3.0.71 3.0.70 3.0.69 3.0.68 3.0.67 3.0.66 1.8.1 1.8.2 1.8.3 1.9.1 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.4 2.0.6 2.0.7 2.0.8 2.0.9 2.1.0 2.1.1 2.1.2 2.1.4 2.1.5 2.1.6 2.1.7 2.1.8 2.1.9 2.2.0 2.2.1 2.2.2 2.2.3 2.2.4 3.0.0 3.0.10 3.0.11 3.0.12 3.0.13 3.0.14 3.0.15 3.0.16 3.0.17 3.0.18 3.0.19 3.0.2 3.0.20 3.0.21 3.0.22 3.0.23 3.0.24 3.0.25 3.0.26 3.0.27 3.0.28 3.0.29 3.0.3 3.0.30 3.0.31 3.0.32 3.0.33 3.0.34 3.0.35 3.0.36 3.0.37 3.0.38 3.0.39 3.0.4 3.0.40 3.0.41 3.0.42 3.0.43 3.0.44 3.0.45 3.0.46 3.0.47 3.0.48 3.0.49 3.0.5 3.0.50 3.0.51 3.0.52 3.0.53 3.0.54 3.0.55 3.0.56 3.0.57 3.0.58 3.0.59 3.0.6 3.0.60 3.0.61 3.0.62 3.0.65 3.0.7 3.0.8 3.0.9 trunk 1.8.0
hostinger / includes / Mcp / Handlers / EventHandler.php
hostinger / includes / Mcp / Handlers Last commit date
EventHandler.php 11 months ago WebsiteMcpOptInToggled.php 11 months ago WebsitePageUpdated.php 11 months ago WebsiteUpdated.php 11 months ago
EventHandler.php
62 lines
1 <?php
2
3 namespace Hostinger\Mcp\Handlers;
4
5 use Hostinger\Admin\Proxy;
6 use Hostinger\Mcp\EventHandlerFactory;
7
8 defined( 'ABSPATH' ) || exit;
9
10 abstract class EventHandler {
11
12 public Proxy $proxy;
13
14 public function __construct( Proxy $proxy ) {
15 $this->proxy = $proxy;
16 }
17
18 protected function send_to_proxy( array $args = array() ): bool {
19 if ( ! $this->can_send( $args ) ) {
20 $this->debug_mcp( 'Event failed: User is not opted in' . ' -- ' . print_r( $args, true ) );
21 return false;
22 }
23
24 $event = $args['event'];
25 $request = $this->proxy->trigger_event( $event, $args );
26 if ( is_wp_error( $request ) ) {
27 $this->debug_mcp( 'Event failed: ' . $event . $request->get_error_message() . ' -- ' . print_r( $args, true ) );
28 return false;
29 }
30
31 $response_code = wp_remote_retrieve_response_code( $request );
32 if ( $response_code < 300 ) {
33 $this->debug_mcp( 'Event sent: ' . $event . ' -- ' . print_r( $args, true ) );
34 return true;
35 }
36
37 $this->debug_mcp( 'Event failed: ' . $event . ' --' . $response_code . ' -- ' . print_r( $args, true ) );
38 return false;
39 }
40
41 public function can_send( array $args = array() ): bool {
42 return isset( $args['event'] ) && ( $this->is_optin_event( $args['event'] ) || $this->is_opted_in() );
43 }
44
45 private function is_opted_in(): bool {
46 $settings = get_option( HOSTINGER_PLUGIN_SETTINGS_OPTION, array() );
47 return $settings['optin_mcp'] ?? false;
48 }
49
50 private function is_optin_event( $event ): bool {
51 return $event === EventHandlerFactory::MCP_EVENT_OPTIN_TOGGLED;
52 }
53
54 private function debug_mcp( string $msg ): void {
55 if ( defined( 'WP_DEBUG' ) && WP_DEBUG ) {
56 error_log( 'Hostinger Tools MCP: ' . $msg . PHP_EOL, 3, WP_CONTENT_DIR . '/mcp.log' );
57 }
58 }
59
60 abstract public function send( array $args = array() ): void;
61 }
62