PluginProbe
Hostinger Tools / 3.0.21
Hostinger Tools v3.0.21
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/Hooks.php +63 -120 3.0.663.0.21 View file →
@@ -2,10 +2,8 @@
2 2
3 3 namespace Hostinger;
4 4
5 5 use Hostinger\Admin\PluginSettings;
6 -use Hostinger\Admin\Jobs\NotifyMcpJob;
7 -use Hostinger\Mcp\EventHandlerFactory;
8 6 use Hostinger\WpHelper\Utils;
9 7
10 8 defined( 'ABSPATH' ) || exit;
11 9
@@ -10,148 +8,93 @@
10 8 defined( 'ABSPATH' ) || exit;
11 9
12 10 class Hooks {
13 11 public function __construct() {
12 + // XMLRpc / Force SSL
14 13 add_filter( 'xmlrpc_enabled', array( $this, 'check_xmlrpc_enabled' ) );
15 - add_filter( 'wp_is_application_passwords_available', array( $this, 'check_authentication_password_enabled' ) );
16 14 add_filter( 'wp_headers', array( $this, 'check_pingback' ) );
17 - add_action( 'init', array( $this, 'plugins_loaded' ) );
15 + add_filter( 'plugins_loaded', array( $this, 'plugins_loaded' ) );
16 +
18 17 add_action( 'update_option_woocommerce_coming_soon', array( $this, 'litespeed_flush_cache' ) );
19 18 add_action( 'update_option_woocommerce_store_pages_only', array( $this, 'litespeed_flush_cache' ) );
20 - add_action( 'transition_post_status', array( $this, 'handle_transition_post_status' ), 10, 3 );
21 - add_action( 'updated_option', array( $this, 'handle_updated_option' ), 10, 3 );
22 19 }
23 20
24 - public function handle_transition_post_status( string $new_status, string $old_status, \WP_Post $post ): void {
25 - if ( $new_status === 'publish' || $old_status === 'publish' ) {
26 - do_action(
27 - NotifyMcpJob::JOB_NAME,
28 - array(
29 - 'event' => EventHandlerFactory::MCP_EVENT_PAGE_UPDATED,
30 - 'post_id' => $post->ID,
31 - )
32 - );
33 - }
34 - }
21 + /**
22 + * @return void
23 + */
24 + public function plugins_loaded() {
25 + $utils = new Utils();
26 + $plugin_settings = new PluginSettings();
27 + $settings = $plugin_settings->get_plugin_settings();
35 28
36 - public function handle_updated_option( string $option, mixed $old_value, mixed $value ): void {
37 - if ( $option === 'cron' || $this->is_transient( $option ) ) {
38 - return;
39 - }
29 + if ( defined( 'WP_CLI' ) && \WP_CLI ) {
30 + return;
31 + }
40 32
41 - if ( $old_value !== $value ) {
42 - do_action( NotifyMcpJob::JOB_NAME, array( 'event' => EventHandlerFactory::MCP_EVENT_UPDATED ) );
43 - }
33 + // Xmlrpc.
34 + if ( $settings->get_disable_xml_rpc() && $utils->isThisPage( 'xmlrpc.php' ) ) {
35 + exit( 'Disabled' );
36 + }
44 37
45 - if ( $option === HOSTINGER_PLUGIN_SETTINGS_OPTION && isset( $value['optin_mcp'] ) && isset( $old_value['optin_mcp'] ) ) {
46 - if ( $old_value['optin_mcp'] !== $value['optin_mcp'] ) {
47 - do_action(
48 - NotifyMcpJob::JOB_NAME,
49 - array(
50 - 'event' => EventHandlerFactory::MCP_EVENT_OPTIN_TOGGLED,
51 - 'value' => $value['optin_mcp'],
52 - )
53 - );
54 - }
55 - }
56 - }
38 + // SSL redirect.
39 + if ( $settings->get_force_https() && ! is_ssl() ) {
40 + if ( isset( $_SERVER['HTTP_HOST'] ) && isset( $_SERVER['REQUEST_URI'] ) ) {
41 + $host = sanitize_text_field( wp_unslash( $_SERVER['HTTP_HOST'] ) );
57 42
58 - /**
59 - * @return void
60 - */
61 - public function plugins_loaded() {
62 - $utils = new Utils();
63 - $plugin_settings = new PluginSettings();
64 - $settings = $plugin_settings->get_plugin_settings();
43 + if ( $settings->get_force_www() && strpos( $host, 'www.' ) === false ) {
44 + $host = 'www.' . $host;
45 + }
65 46
66 - if ( defined( 'WP_CLI' ) && \WP_CLI ) {
67 - return;
68 - }
47 + wp_safe_redirect( 'https://' . $host . sanitize_text_field( wp_unslash( $_SERVER['REQUEST_URI'] ) ), 301 );
48 + exit;
49 + }
50 + }
69 51
70 - // Xmlrpc.
71 - if ( $settings->get_disable_xml_rpc() && $utils->isThisPage( 'xmlrpc.php' ) ) {
72 - exit( 'Disabled' );
73 - }
52 + // Force www.
53 + if ( $settings->get_force_www() ) {
54 + if ( isset( $_SERVER['HTTP_HOST'] ) && isset( $_SERVER['REQUEST_URI'] ) ) {
55 + $host = sanitize_text_field( wp_unslash( $_SERVER['HTTP_HOST'] ) );
74 56
75 - // SSL redirect.
76 - if ( $settings->get_force_https() && ! is_ssl() ) {
77 - if ( isset( $_SERVER['HTTP_HOST'] ) && isset( $_SERVER['REQUEST_URI'] ) ) {
78 - $host = sanitize_text_field( wp_unslash( $_SERVER['HTTP_HOST'] ) );
57 + if ( strpos( $host, 'www.' ) === false ) {
58 + wp_safe_redirect( 'https://www.' . $host . sanitize_text_field( wp_unslash( $_SERVER['REQUEST_URI'] ) ), 301 );
59 + exit;
60 + }
61 + }
62 + }
63 + }
79 64
80 - if ( $settings->get_force_www() && strpos( $host, 'www.' ) === false ) {
81 - $host = 'www.' . $host;
82 - }
65 + /**
66 + * @param mixed $headers
67 + *
68 + * @return mixed
69 + */
70 + public function check_pingback( $headers ) {
71 + $plugin_settings = new PluginSettings();
72 + $settings = $plugin_settings->get_plugin_settings();
83 73
84 - wp_safe_redirect( 'https://' . $host . sanitize_text_field( wp_unslash( $_SERVER['REQUEST_URI'] ) ), 301 );
85 - exit;
86 - }
87 - }
74 + if ( $settings->get_disable_xml_rpc() ) {
75 + unset( $headers['X-Pingback'] );
76 + }
88 77
89 - // Force www.
90 - if ( $settings->get_force_www() ) {
91 - if ( isset( $_SERVER['HTTP_HOST'] ) && isset( $_SERVER['REQUEST_URI'] ) ) {
92 - $host = sanitize_text_field( wp_unslash( $_SERVER['HTTP_HOST'] ) );
78 + return $headers;
79 + }
93 80
94 - if ( strpos( $host, 'www.' ) === false ) {
95 - wp_safe_redirect( 'https://www.' . $host . sanitize_text_field( wp_unslash( $_SERVER['REQUEST_URI'] ) ), 301 );
96 - exit;
97 - }
98 - }
99 - }
100 - }
81 + /**
82 + * @return bool
83 + */
84 + public function check_xmlrpc_enabled(): bool {
85 + $plugin_settings = new PluginSettings();
86 + $settings = $plugin_settings->get_plugin_settings();
101 87
102 - /**
103 - * @param mixed $headers
104 - *
105 - * @return mixed
106 - */
107 - public function check_pingback( $headers ) {
108 - $plugin_settings = new PluginSettings();
109 - $settings = $plugin_settings->get_plugin_settings();
88 + if ( $settings->get_disable_xml_rpc() ) {
89 + return false;
90 + }
110 91
111 - if ( $settings->get_disable_xml_rpc() ) {
112 - unset( $headers['X-Pingback'] );
113 - }
92 + return true;
93 + }
114 94
115 - return $headers;
116 - }
117 -
118 - /**
119 - * @param bool $enabled
120 - *
121 - * @return bool
122 - */
123 - public function check_xmlrpc_enabled( bool $enabled ): bool {
124 - $plugin_settings = new PluginSettings();
125 - $settings = $plugin_settings->get_plugin_settings();
126 -
127 - if ( $settings->get_disable_xml_rpc() ) {
128 - return false;
129 - }
130 -
131 - return $enabled;
132 - }
133 -
134 - /**
135 - * @return bool
136 - */
137 - public function check_authentication_password_enabled(): bool {
138 - $plugin_settings = new PluginSettings();
139 - $settings = $plugin_settings->get_plugin_settings();
140 -
141 - if ( $settings->get_disable_authentication_password() ) {
142 - return false;
143 - }
144 -
145 - return true;
146 - }
147 -
148 95 public function litespeed_flush_cache(): void {
149 96 if ( has_action( 'litespeed_purge_all' ) ) {
150 97 do_action( 'litespeed_purge_all' );
151 98 }
152 - }
153 -
154 - private function is_transient( $option ): bool {
155 - return str_contains( $option, '_transient' );
156 99 }
157 100 }