PluginProbe
Hostinger Tools / 2.0.4
Hostinger Tools v2.0.4
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 / class-hostinger-helper.php

class-hostinger-helper.php in Hostinger Tools 2.0.4, at includes/class-hostinger-helper.php

184 lines 5.5 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2
3 class Hostinger_Helper {
4 public const HOSTINGER_FREE_SUBDOMAIN_URL = 'hostingersite.com';
5 public const HOSTINGER_PAGE = '/wp-admin/admin.php?page=hostinger';
6 public const CLIENT_WOO_COMPLETED_ACTIONS = 'woocommerce_task_list_tracked_completed_tasks';
7 private const PROMOTIONAL_LINKS = array(
8 'fr_FR' => 'https://www.hostinger.fr/cpanel-login?r=%2Fjump-to%2Fnew-panel%2Fsection%2Freferrals&utm_source=Banner&utm_medium=HostingerWPplugin',
9 'es_ES' => 'https://www.hostinger.es/cpanel-login?r=%2Fjump-to%2Fnew-panel%2Fsection%2Freferrals&utm_source=Banner&utm_medium=HostingerWPplugin',
10 'ar' => 'https://www.hostinger.ae/cpanel-login?r=%2Fjump-to%2Fnew-panel%2Fsection%2Freferrals&utm_source=Banner&utm_medium=HostingerWPplugin',
11 'zh_CN' => 'https://www.hostinger.com.hk/cpanel-login?r=%2Fjump-to%2Fnew-panel%2Fsection%2Freferrals&utm_source=Banner&utm_medium=HostingerWPplugin',
12 'id_ID' => 'https://www.hostinger.co.id/cpanel-login?r=%2Fjump-to%2Fnew-panel%2Fsection%2Freferrals&utm_source=Banner&utm_medium=HostingerWPplugin',
13 'lt_LT' => 'https://www.hostinger.lt/cpanel-login?r=%2Fjump-to%2Fnew-panel%2Fsection%2Freferrals&utm_source=Banner&utm_medium=HostingerWPplugin',
14 'pt_PT' => 'https://www.hostinger.pt/cpanel-login?r=%2Fjump-to%2Fnew-panel%2Fsection%2Freferrals&utm_source=Banner&utm_medium=HostingerWPplugin',
15 'uk' => 'https://www.hostinger.com.ua/cpanel-login?r=%2Fjump-to%2Fnew-panel%2Fsection%2Freferrals&utm_source=Banner&utm_medium=HostingerWPplugin',
16 'tr_TR' => 'https://www.hostinger.com.tr/cpanel-login?r=%2Fjump-to%2Fnew-panel%2Fsection%2Freferrals&utm_source=Banner&utm_medium=HostingerWPplugin',
17 'en_US' => 'https://www.hostinger.com/cpanel-login?r=%2Fjump-to%2Fnew-panel%2Fsection%2Freferrals&utm_source=Banner&utm_medium=HostingerWPplugin',
18 );
19
20 private const HPANEL_DOMAIN_URL = 'https://hpanel.hostinger.com/websites/';
21
22 /**
23 *
24 * Check if plugin is active
25 *
26 * @since 1.0.0
27 * @access public
28 */
29 public static function is_plugin_active( $plugin_slug ): bool {
30 $active_plugins = (array) get_option( 'active_plugins', array() );
31 foreach ( $active_plugins as $active_plugin ) {
32 if ( strpos( $active_plugin, $plugin_slug . '.php' ) !== false ) {
33 return true;
34 }
35 }
36
37 return false;
38 }
39
40 public static function get_api_token(): string {
41 $api_token = '';
42 $token_file = HOSTINGER_WP_TOKEN;
43
44 if ( file_exists( $token_file ) && ! empty( file_get_contents( $token_file ) ) ) {
45 $api_token = file_get_contents( $token_file );
46 }
47
48 return $api_token;
49 }
50
51 /**
52 *
53 * Get the host info (domain, subdomain, subdirectory)
54 *
55 * @since 1.7.0
56 * @access public
57 */
58
59 public function get_host_info(): string {
60 $host = $_SERVER['HTTP_HOST'] ?? '';
61 $site_url = get_site_url();
62 $site_url = preg_replace( '#^https?://#', '', $site_url );
63
64 if ( ! empty( $site_url ) && ! empty( $host ) && strpos( $site_url, $host ) === 0 ) {
65 if ( $site_url === $host ) {
66 return $host;
67 } else {
68 return substr( $site_url, strlen( $host ) + 1 );
69 }
70 }
71
72 return $host;
73 }
74
75 public function is_preview_domain(): bool {
76 if ( function_exists( 'getallheaders' ) ) {
77 $headers = getallheaders();
78 }
79
80 if ( isset( $headers['X-Preview-Indicator'] ) && $headers['X-Preview-Indicator'] ) {
81 return true;
82 }
83
84 return false;
85 }
86
87 public function is_free_subdomain(): bool {
88 $site_url = preg_replace( '#^https?://#', '', get_site_url() );
89
90 return ! empty( $site_url ) && strpos( $site_url, self::HOSTINGER_FREE_SUBDOMAIN_URL ) !== false;
91 }
92
93 public function is_hostinger_admin_page(): bool {
94
95 if ( ! isset( $_SERVER['REQUEST_URI'] ) ) {
96 return false;
97 }
98
99 $current_uri = sanitize_text_field( $_SERVER['REQUEST_URI'] );
100
101 if ( defined( 'DOING_AJAX' ) && DOING_AJAX ) {
102 return false;
103 }
104
105 if ( isset( $current_uri ) && strpos( $current_uri, '/wp-json/' ) !== false ) {
106 return false;
107 }
108
109 if ( strpos( $current_uri, self::HOSTINGER_PAGE ) !== false ) {
110 return true;
111 }
112
113 return false;
114 }
115
116 /**
117 *
118 * Error log
119 *
120 * @since 1.9.6
121 * @access public
122 */
123 public function error_log( string $message ): void {
124 if ( defined( 'WP_DEBUG' ) && WP_DEBUG === true ) {
125 error_log( print_r( $message, true ) );
126 }
127 }
128
129 public function default_woocommerce_survey_steps_completed( array $steps ): bool {
130 $completed_actions = get_option( self::CLIENT_WOO_COMPLETED_ACTIONS, array() );
131
132 return empty( array_diff( $steps, $completed_actions ) );
133 }
134
135 public function is_this_page( string $page ): bool {
136
137 if ( ! isset( $_SERVER['REQUEST_URI'] ) ) {
138 return false;
139 }
140
141 $current_uri = sanitize_text_field( $_SERVER['REQUEST_URI'] );
142
143 if ( defined( 'DOING_AJAX' ) && DOING_AJAX ) {
144 return false;
145 }
146
147 if ( isset( $current_uri ) && strpos( $current_uri, '/wp-json/' ) !== false ) {
148 return false;
149 }
150
151 if ( strpos( $current_uri, $page ) !== false ) {
152 return true;
153 }
154
155 return false;
156 }
157
158 public function get_promotional_link_url( string $locale ): string {
159 if ( isset( self::PROMOTIONAL_LINKS[ $locale ] ) ) {
160 return self::PROMOTIONAL_LINKS[ $locale ];
161 }
162
163 return self::PROMOTIONAL_LINKS['en_US'];
164 }
165
166 public function get_domain_from_url(): string {
167 $host = parse_url( get_site_url(), PHP_URL_HOST );
168
169 return $host === false ? self::HPANEL_DOMAIN_URL : $host;
170 }
171
172 public function get_hpanel_domain_url(): string {
173 $domain_url = $this->get_domain_from_url();
174
175 if( $domain_url === self::HPANEL_DOMAIN_URL ) {
176 return $domain_url;
177 }
178
179 return self::HPANEL_DOMAIN_URL . $domain_url;
180 }
181 }
182
183 $hostinger_helper = new Hostinger_Helper();
184