PluginProbe
Hostinger Tools / 3.0.41
Hostinger Tools v3.0.41
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 / Helper.php

Helper.php in Hostinger Tools 3.0.41, at includes/Helper.php

197 lines 5.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;
4
5 defined( 'ABSPATH' ) || exit;
6
7 class Helper {
8 const HOSTINGER_LOCALES = array(
9 'lt_LT' => 'hostinger.lt',
10 'uk_UA' => 'hostinger.com.ua',
11 'id_ID' => 'hostinger.co.id',
12 'en_US' => 'hostinger.com',
13 'es_ES' => 'hostinger.es',
14 'es_AR' => 'hostinger.com.ar',
15 'es_MX' => 'hostinger.mx',
16 'es_CO' => 'hostinger.co',
17 'pt_BR' => 'hostinger.com.br',
18 'ro_RO' => 'hostinger.ro',
19 'fr_FR' => 'hostinger.fr',
20 'it_IT' => 'hostinger.it',
21 'pl_PL' => 'hostinger.pl',
22 'en_PH' => 'hostinger.ph',
23 'ar_AE' => 'hostinger.ae',
24 'ms_MY' => 'hostinger.my',
25 'ko_KR' => 'hostinger.kr',
26 'vi_VN' => 'hostinger.vn',
27 'th_TH' => 'hostinger.in.th',
28 'tr_TR' => 'hostinger.web.tr',
29 'pt_PT' => 'hostinger.pt',
30 'de_DE' => 'hostinger.de',
31 'en_IN' => 'hostinger.in',
32 'ja_JP' => 'hostinger.jp',
33 'nl_NL' => 'hostinger.nl',
34 'en_GB' => 'hostinger.co.uk',
35 'el_GR' => 'hostinger.gr',
36 'cs_CZ' => 'hostinger.cz',
37 'hu_HU' => 'hostinger.hu',
38 'sv_SE' => 'hostinger.se',
39 'da_DK' => 'hostinger.dk',
40 'fi_FI' => 'hostinger.fi',
41 'sk_SK' => 'hostinger.sk',
42 'no_NO' => 'hostinger.no',
43 'hr_HR' => 'hostinger.hr',
44 'zh_HK' => 'hostinger.com.hk',
45 'he_IL' => 'hostinger.co.il',
46 'lv_LV' => 'hostinger.lv',
47 'et_EE' => 'hostinger.ee',
48 'ur_PK' => 'hostinger.pk',
49 );
50
51 public const HOMEPAGE_DISPLAY = 'page';
52
53 /**
54 *
55 * Check if plugin is active
56 *
57 * @since 1.0.0
58 * @access public
59 */
60 public static function is_plugin_active( $plugin_slug ): bool {
61 $active_plugins = (array) get_option( 'active_plugins', array() );
62 foreach ( $active_plugins as $active_plugin ) {
63 if ( strpos( $active_plugin, $plugin_slug . '.php' ) !== false ) {
64 return true;
65 }
66 }
67
68 return false;
69 }
70
71 public function is_preview_domain( $headers = null ): bool {
72 // @codeCoverageIgnoreStart
73 if ( $headers === null && function_exists( 'getallheaders' ) ) {
74 $headers = getallheaders();
75 }
76 // @codeCoverageIgnoreEnd
77 if ( isset( $headers['X-Preview-Indicator'] ) && $headers['X-Preview-Indicator'] ) {
78 return true;
79 }
80
81 return false;
82 }
83
84 public static function woocommerce_onboarding_choice(): bool {
85 return (bool) get_option( 'hostinger_woo_onboarding_choice', false );
86 }
87
88 public static function generate_bypass_code( $length ) {
89 $characters = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz';
90 $code = '';
91 $max_index = strlen( $characters ) - 1;
92
93 for ( $i = 0; $i < $length; $i++ ) {
94 $random_index = wp_rand( 0, $max_index );
95 $code .= $characters[ $random_index ];
96 }
97
98 return $code;
99 }
100
101 public function should_plugin_split_notice_shown() {
102 $plugin_split_notice_hidden = get_option( 'hts_plugin_split_notice_hidden', false );
103
104 if ( $plugin_split_notice_hidden !== false ) {
105 return false;
106 }
107
108 if ( ! version_compare( HOSTINGER_VERSION, '3.0.0', '>=' ) ) {
109 return false;
110 }
111
112 if ( is_plugin_active( 'hostinger-easy-onboarding/hostinger-easy-onboarding.php' ) ) {
113 return false;
114 }
115
116 return true;
117 }
118
119 public function get_hostinger_plugin_url(): string {
120 $website_locale = get_locale() ?? 'en_US';
121 $reseller_locale = get_option( 'hostinger_reseller', null );
122 $base_domain = $reseller_locale ?? ( self::HOSTINGER_LOCALES[ $website_locale ] ?? 'hostinger.com' );
123
124 $plugin_url = rtrim( $base_domain, '/' ) . '/';
125 $plugin_url .= str_replace( ABSPATH, '', HOSTINGER_ABSPATH );
126
127 return $plugin_url;
128 }
129
130 public function get_recommended_php_version(): string {
131 $wp_version = get_bloginfo( 'version' );
132
133 if ( empty( $wp_version ) ) {
134 return '8.2';
135 }
136
137 // Remove any additional version info (like -RC1, -beta1, etc.).
138 $wp_version = preg_replace( '/[-+].*$/', '', $wp_version );
139
140 if ( version_compare( $wp_version, '6.6', '>=' ) ) {
141 return '8.2';
142 }
143
144 if ( version_compare( $wp_version, '6.3', '>=' ) ) {
145 return '8.1';
146 }
147
148 if ( version_compare( $wp_version, '5.3', '>=' ) ) {
149 return '7.4';
150 }
151
152 if ( version_compare( $wp_version, '5.0', '>=' ) ) {
153 return '7.3';
154 }
155
156 if ( version_compare( $wp_version, '4.9', '=' ) ) {
157 return '7.2';
158 }
159
160 if ( version_compare( $wp_version, '4.7', '>=' ) ) {
161 return '7.1';
162 }
163
164 if ( version_compare( $wp_version, '4.4', '>=' ) ) {
165 return '7.0';
166 }
167
168 return '5.6';
169 }
170
171 public function get_edit_site_url(): string {
172 if ( wp_is_block_theme() ) {
173 return add_query_arg(
174 array(
175 'canvas' => 'edit',
176 ),
177 admin_url( 'site-editor.php' )
178 );
179 }
180
181 $show_on_front = get_option( 'show_on_front' );
182 $front_page_id = get_option( 'page_on_front' );
183
184 if ( $show_on_front === self::HOMEPAGE_DISPLAY && $front_page_id ) {
185 return add_query_arg(
186 array(
187 'post' => $front_page_id,
188 'action' => 'edit',
189 ),
190 admin_url( 'post.php' )
191 );
192 }
193
194 return '';
195 }
196 }
197