PluginProbe ʕ •ᴥ•ʔ
Hostinger Tools / 3.0.70
Hostinger Tools v3.0.70
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 2.0.6 2.0.7 2.0.8 2.0.9 2.1.0 2.1.1 2.1.2 2.1.4 2.1.5 2.1.6 2.1.7 2.1.8 2.1.9 2.2.0 2.2.1 2.2.2 2.2.3 2.2.4 3.0.0 3.0.10 3.0.11 3.0.12 3.0.13 3.0.14 3.0.15 3.0.16 3.0.17 3.0.18 3.0.19 3.0.2 3.0.20 3.0.21 3.0.22 3.0.23 3.0.24 3.0.25 3.0.26 3.0.27 3.0.28 3.0.29 3.0.3 3.0.30 3.0.31 3.0.32 3.0.33 3.0.34 3.0.35 3.0.36 3.0.37 3.0.38 3.0.39 3.0.4 3.0.40 3.0.41 3.0.42 3.0.43 3.0.44 3.0.45 3.0.46 3.0.47 3.0.48 3.0.49 3.0.5 3.0.50 3.0.51 3.0.52 3.0.53 3.0.54 3.0.55 3.0.56 3.0.57 3.0.58 3.0.59 3.0.6 3.0.60 3.0.61 3.0.62 3.0.65 3.0.7 3.0.8 3.0.9 trunk 1.8.0
hostinger / includes / ComingSoon.php
hostinger / includes Last commit date
Admin 2 months ago Cli 2 weeks ago LlmsTxtGenerator 2 weeks ago Mcp 11 months ago Preview 1 year ago Rest 10 months ago Views 1 year ago Activator.php 1 year ago Bootstrap.php 9 months ago Cli.php 9 months ago ComingSoon.php 2 months ago Deactivator.php 1 year ago DefaultOptions.php 2 months ago Errors.php 1 year ago Helper.php 9 months ago Hooks.php 2 months ago Hostinger.php 2 months ago I18n.php 1 year ago LlmsTxtGenerator.php 1 year ago Loader.php 1 year ago Settings.php 1 year ago
ComingSoon.php
98 lines
1 <?php
2
3 namespace Hostinger;
4
5 use Hostinger\Admin\Options\PluginOptions;
6 use Hostinger\Admin\PluginSettings;
7
8 defined( 'ABSPATH' ) || exit;
9
10 class ComingSoon {
11 /**
12 * @var PluginOptions
13 */
14 private PluginOptions $plugin_options;
15
16 public function __construct() {
17 $plugin_settings = new PluginSettings();
18 $this->plugin_options = $plugin_settings->get_plugin_settings();
19
20 add_action( 'wp_footer', array( $this, 'register_styles' ) );
21 add_action( 'template_redirect', array( $this, 'coming_soon' ) );
22 add_filter( 'wp_headers', array( $this, 'modify_headers' ) );
23
24 // Fix deprecated warning.
25 if ( has_action( 'wp_footer', 'the_block_template_skip_link' ) ) {
26 remove_action( 'wp_footer', 'the_block_template_skip_link' );
27 }
28 }
29
30 /**
31 * @return void
32 */
33 public function coming_soon(): void {
34 // Do not cache coming soon page.
35 if ( has_action( 'litespeed_purge_all' ) && ! defined( 'DONOTCACHEPAGE' ) ) {
36 define( 'DONOTCACHEPAGE', true );
37 }
38
39 if ( ! $this->can_bypass_coming_soon() ) {
40 include_once HOSTINGER_ABSPATH . 'includes/Views/ComingSoon.php';
41 die;
42 }
43 }
44
45 /**
46 * @return void
47 */
48 public function register_styles(): void {
49 wp_enqueue_style(
50 'hostinger_main_styles',
51 HOSTINGER_ASSETS_URL . '/css/coming-soon.min.css',
52 array(),
53 HOSTINGER_WORDPRESS_PLUGIN_VERSION
54 );
55 }
56
57 /**
58 * @param array $headers
59 *
60 * @return array
61 */
62 public function modify_headers( array $headers ): array {
63 $headers['Cache-Control'] = 'no-cache';
64
65 return $headers;
66 }
67
68 /**
69 * @return bool
70 */
71 /** PHPCS:disable WordPress.Security.NonceVerification.Recommended */
72 private function can_bypass_coming_soon(): bool {
73 $bypass_code = isset( $_COOKIE['hostinger_bypass_code'] ) ? sanitize_text_field( $_COOKIE['hostinger_bypass_code'] ) : '';
74
75 if ( isset( $_GET['bypass_code'] ) && $this->plugin_options->get_bypass_code() === $_GET['bypass_code'] ) {
76 setcookie( 'hostinger_bypass_code', $this->plugin_options->get_bypass_code() );
77 $bypass_code = $this->plugin_options->get_bypass_code();
78 }
79
80 if ( is_admin() ) {
81 return true;
82 }
83
84 if ( current_user_can( 'update_plugins' ) ) {
85 return true;
86 }
87
88 if ( ! empty( $bypass_code ) && $bypass_code === $this->plugin_options->get_bypass_code() ) {
89 return true;
90 }
91
92 return false;
93 }
94 /** PHPCS:enable */
95 }
96
97 new ComingSoon();
98