PluginProbe
Hostinger Tools / 3.0.76
Hostinger Tools v3.0.76
3.0.77 3.0.76 3.0.75 3.0.74 3.0.73 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 All 108 releases
hostinger / includes / Admin / Proxy.php

Proxy.php in Hostinger Tools 3.0.76, at includes/Admin/Proxy.php

57 lines 1.6 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2
3 namespace Hostinger\Admin;
4
5 use Hostinger\Mcp\EventHandlerFactory;
6 use Hostinger\WpHelper\Requests\Client;
7 use Hostinger\WpHelper\Utils;
8 use WP_Error;
9
10 defined( 'ABSPATH' ) || exit;
11
12 class Proxy {
13
14 public const HOSTINGER_FREE_SUBDOMAIN_URL = 'hostingersite.com';
15 public const HOSTINGER_DEV_FREE_SUBDOMAIN_URL = 'hostingersite.dev';
16
17
18 private Client $client;
19 private Utils $utils;
20 private string $rest_base;
21
22 public function __construct( Client $client, Utils $utils ) {
23 $this->client = $client;
24 $this->utils = $utils;
25 $this->rest_base = '/api/v1/events/trigger';
26 }
27
28 public function trigger_event( string $event, array $params = array() ): array|WP_Error {
29 if ( $this->is_free_subdomain() || ! $_SERVER['H_PLATFORM'] ) {
30 return new WP_Error( 'domain-not_allowed', 'This domain is not eligible for triggering Hostinger events' );
31 }
32
33 $args = array(
34 'domain' => $this->remove_www( $this->utils->getHostInfo() ),
35 'event' => array(
36 'name' => $event,
37 'params' => $params,
38 ),
39 );
40
41 return $this->client->post( $this->rest_base, $args );
42 }
43
44 private function is_free_subdomain(): bool {
45 return str_contains( $this->utils->getHostInfo(), self::HOSTINGER_FREE_SUBDOMAIN_URL ) ||
46 str_contains( $this->utils->getHostInfo(), self::HOSTINGER_DEV_FREE_SUBDOMAIN_URL );
47 }
48
49 private function remove_www( string $url ): string {
50 if ( str_starts_with( $url, 'www.' ) ) {
51 return substr( $url, 4 );
52 }
53
54 return $url;
55 }
56 }
57