| @@ -2,9 +2,24 @@ | ||
| 2 | 2 | |
| 3 | 3 | class Hostinger_Helper { |
| 4 | 4 | public const HOSTINGER_FREE_SUBDOMAIN_URL = 'hostingersite.com'; |
| 5 | 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 | + ); | |
| 6 | 19 | |
| 20 | + private const HPANEL_DOMAIN_URL = 'https://hpanel.hostinger.com/websites/'; | |
| 21 | + | |
| 7 | 22 | /** |
| 8 | 23 | * |
| 9 | 24 | * Check if plugin is active |
| 10 | 25 | * |
| @@ -76,9 +91,9 @@ | ||
| 76 | 91 | } |
| 77 | 92 | |
| 78 | 93 | public function is_hostinger_admin_page(): bool { |
| 79 | 94 | |
| 80 | - if( ! isset( $_SERVER['REQUEST_URI'] ) ) { | |
| 95 | + if ( ! isset( $_SERVER['REQUEST_URI'] ) ) { | |
| 81 | 96 | return false; |
| 82 | 97 | } |
| 83 | 98 | |
| 84 | 99 | $current_uri = sanitize_text_field( $_SERVER['REQUEST_URI'] ); |
| @@ -108,8 +123,61 @@ | ||
| 108 | 123 | public function error_log( string $message ): void { |
| 109 | 124 | if ( defined( 'WP_DEBUG' ) && WP_DEBUG === true ) { |
| 110 | 125 | error_log( print_r( $message, true ) ); |
| 111 | 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; | |
| 112 | 180 | } |
| 113 | 181 | } |
| 114 | 182 | |
| 115 | 183 | $hostinger_helper = new Hostinger_Helper(); |