PluginProbe
Hostinger Tools / 3.0.76
Hostinger Tools v3.0.76
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 / ComingSoon.php

ComingSoon.php in Hostinger Tools 3.0.76, at includes/ComingSoon.php

98 lines 2.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 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