PluginProbe
Hostinger Tools / 2.0.8
Hostinger Tools v2.0.8
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
← All changes | includes/class-hostinger-helper.php +108 -8 1.9.52.0.8 View file →
@@ -1,12 +1,25 @@
1 1 <?php
2 2
3 3 class Hostinger_Helper {
4 4 public const HOSTINGER_FREE_SUBDOMAIN_URL = 'hostingersite.com';
5 - public const HOSTINGER_PAGE = [
6 - '/wp-admin/admin.php?page=hostinger'
7 - ];
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 + );
8 19
20 + private const HPANEL_DOMAIN_URL = 'https://hpanel.hostinger.com/websites/';
21 +
9 22 /**
10 23 *
11 24 * Check if plugin is active
12 25 *
@@ -30,9 +43,8 @@
30 43
31 44 if ( file_exists( $token_file ) && ! empty( file_get_contents( $token_file ) ) ) {
32 45 $api_token = file_get_contents( $token_file );
33 46 }
34 -
35 47 return $api_token;
36 48 }
37 49
38 50 /**
@@ -41,11 +53,10 @@
41 53 *
42 54 * @since 1.7.0
43 55 * @access public
44 56 */
45 -
46 57 public function get_host_info(): string {
47 - $host = $_SERVER['HTTP_HOST'] ?? '';
58 + $host = isset( $_SERVER['HTTP_HOST'] ) ? sanitize_text_field( $_SERVER['HTTP_HOST'] ) : '';
48 59 $site_url = get_site_url();
49 60 $site_url = preg_replace( '#^https?://#', '', $site_url );
50 61
51 62 if ( ! empty( $site_url ) && ! empty( $host ) && strpos( $site_url, $host ) === 0 ) {
@@ -77,8 +88,13 @@
77 88 return ! empty( $site_url ) && strpos( $site_url, self::HOSTINGER_FREE_SUBDOMAIN_URL ) !== false;
78 89 }
79 90
80 91 public function is_hostinger_admin_page(): bool {
92 +
93 + if ( ! isset( $_SERVER['REQUEST_URI'] ) ) {
94 + return false;
95 + }
96 +
81 97 $current_uri = sanitize_text_field( $_SERVER['REQUEST_URI'] );
82 98
83 99 if ( defined( 'DOING_AJAX' ) && DOING_AJAX ) {
84 100 return false;
@@ -87,15 +103,99 @@
87 103 if ( isset( $current_uri ) && strpos( $current_uri, '/wp-json/' ) !== false ) {
88 104 return false;
89 105 }
90 106
91 - if ( in_array( $current_uri, self::HOSTINGER_PAGE ) ) {
107 + if ( strpos( $current_uri, self::HOSTINGER_PAGE ) !== false ) {
92 108 return true;
93 109 }
94 110
95 111 return false;
112 + }
96 113
114 + /**
115 + *
116 + * Error log
117 + *
118 + * @since 1.9.6
119 + * @access public
120 + */
121 + public function error_log( string $message ): void {
122 + if ( defined( 'WP_DEBUG' ) && WP_DEBUG === true ) {
123 + error_log( print_r( $message, true ) );
124 + }
97 125 }
98 126
127 + public function default_woocommerce_survey_steps_completed( array $steps ): bool {
128 + $completed_actions = get_option( self::CLIENT_WOO_COMPLETED_ACTIONS, array() );
129 +
130 + return empty( array_diff( $steps, $completed_actions ) );
131 + }
132 +
133 + public function is_this_page( string $page ): bool {
134 +
135 + if ( ! isset( $_SERVER['REQUEST_URI'] ) ) {
136 + return false;
137 + }
138 +
139 + $current_uri = sanitize_text_field( $_SERVER['REQUEST_URI'] );
140 +
141 + if ( defined( 'DOING_AJAX' ) && DOING_AJAX ) {
142 + return false;
143 + }
144 +
145 + if ( isset( $current_uri ) && strpos( $current_uri, '/wp-json/' ) !== false ) {
146 + return false;
147 + }
148 +
149 + if ( strpos( $current_uri, $page ) !== false ) {
150 + return true;
151 + }
152 +
153 + return false;
154 + }
155 +
156 + public function get_promotional_link_url( string $locale ): string {
157 + if ( isset( self::PROMOTIONAL_LINKS[ $locale ] ) ) {
158 + return self::PROMOTIONAL_LINKS[ $locale ];
159 + }
160 +
161 + return self::PROMOTIONAL_LINKS['en_US'];
162 + }
163 +
164 + public function get_domain_from_url(): string {
165 + $host = parse_url( get_site_url(), PHP_URL_HOST );
166 +
167 + return $host === false ? self::HPANEL_DOMAIN_URL : $host;
168 + }
169 +
170 + public function get_hpanel_domain_url(): string {
171 + $domain_url = $this->get_domain_from_url();
172 +
173 + if( $domain_url === self::HPANEL_DOMAIN_URL ) {
174 + return $domain_url;
175 + }
176 +
177 + return self::HPANEL_DOMAIN_URL . $domain_url;
178 + }
179 +
180 + public function check_transient_eligibility( $transient_request_key, $cache_time = 3600 ): bool {
181 + try {
182 + // Set transient
183 + set_transient( $transient_request_key, true, $cache_time );
184 +
185 + // Check if transient was set successfully
186 + if ( false === get_transient( $transient_request_key ) ) {
187 + throw new Exception( 'Unable to create transient in WordPress.' );
188 + }
189 +
190 + // If everything is fine, return true
191 + return true;
192 +
193 + } catch ( Exception $exception ) {
194 + // If there's an exception, log the error and return false
195 + $this->helper->error_log( 'Error checking eligibility: ' . $exception->getMessage() );
196 + return false;
197 + }
198 + }
99 199 }
100 200
101 -$hostiner_helper = new Hostinger_Helper();
201 +$hostinger_helper = new Hostinger_Helper();