PluginProbe
Hostinger Tools / 3.0.2
Hostinger Tools v3.0.2
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 +27 -101 3.0.723.0.2 View file →
@@ -2,115 +2,67 @@
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
12 10 class Hooks {
13 - public function __construct() {
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 - add_filter( 'wp_headers', array( $this, 'check_pingback' ) );
17 - add_action( 'init', array( $this, 'plugins_loaded' ) );
18 - add_action( 'update_option_woocommerce_coming_soon', array( $this, 'litespeed_flush_cache' ) );
19 - 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 - }
14 + add_filter( 'wp_headers', array( $this, 'check_pingback' ));
15 + add_filter( 'plugins_loaded', array( $this, 'plugins_loaded' ) );
16 + }
23 17
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 - }
35 -
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 - }
40 -
41 - if ( $old_value !== $value ) {
42 - do_action( NotifyMcpJob::JOB_NAME, array( 'event' => EventHandlerFactory::MCP_EVENT_UPDATED ) );
43 - }
44 -
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 - }
57 -
58 18 /**
59 19 * @return void
60 20 */
61 21 public function plugins_loaded() {
62 - $utils = new Utils();
22 + $utils = new Utils();
63 23 $plugin_settings = new PluginSettings();
64 - $settings = $plugin_settings->get_plugin_settings();
24 + $settings = $plugin_settings->get_plugin_settings();
65 25
66 - if ( defined( 'WP_CLI' ) && \WP_CLI ) {
26 + if ( defined( 'WP_CLI' ) && WP_CLI ) {
67 27 return;
68 28 }
69 29
70 30 // Xmlrpc.
71 - if ( $settings->get_disable_xml_rpc() && $utils->isThisPage( 'xmlrpc.php' ) ) {
72 - exit( 'Disabled' );
31 + if($settings->get_disable_xml_rpc() && $utils->isThisPage('xmlrpc.php')) {
32 + exit('Disabled');
73 33 }
74 34
75 35 // 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'] ) );
36 + if($settings->get_force_https() && !is_ssl()) {
37 + $host = $_SERVER['HTTP_HOST'];
79 38
80 - if ( $settings->get_force_www() && strpos( $host, 'www.' ) === false ) {
81 - $host = 'www.' . $host;
82 - }
39 + if ($settings->get_force_www() && strpos($_SERVER['HTTP_HOST'], 'www.') === false) {
40 + $host = 'www.'.$host;
41 + }
83 42
84 - wp_safe_redirect( 'https://' . $host . sanitize_text_field( wp_unslash( $_SERVER['REQUEST_URI'] ) ), 301 );
85 - exit;
86 - }
43 + wp_redirect('https://' . $host . $_SERVER['REQUEST_URI'], 301);
44 + exit();
87 45 }
88 46
89 47 // 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'] ) );
93 -
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 - }
48 + if ($settings->get_force_www() && strpos($_SERVER['HTTP_HOST'], 'www.') === false) {
49 + wp_redirect('https://www.' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'], 301);
50 + exit;
99 51 }
100 52 }
101 53
102 54 /**
103 - * @param mixed $headers
55 + * @param $headers
104 56 *
105 57 * @return mixed
106 58 */
107 59 public function check_pingback( $headers ) {
108 60 $plugin_settings = new PluginSettings();
109 - $settings = $plugin_settings->get_plugin_settings();
61 + $settings = $plugin_settings->get_plugin_settings();
110 62
111 - if ( $settings->get_disable_xml_rpc() ) {
112 - unset( $headers['X-Pingback'] );
63 + if($settings->get_disable_xml_rpc()) {
64 + unset($headers['X-Pingback']);
113 65 }
114 66
115 67 return $headers;
116 68 }
@@ -115,43 +67,17 @@
115 67 return $headers;
116 68 }
117 69
118 70 /**
119 - * @param bool $enabled
120 - *
121 71 * @return bool
122 72 */
123 - public function check_xmlrpc_enabled( bool $enabled ): bool {
73 + public function check_xmlrpc_enabled(): bool {
124 74 $plugin_settings = new PluginSettings();
125 - $settings = $plugin_settings->get_plugin_settings();
75 + $settings = $plugin_settings->get_plugin_settings();
126 76
127 - if ( $settings->get_disable_xml_rpc() ) {
77 + if($settings->get_disable_xml_rpc()) {
128 78 return false;
129 79 }
130 80
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 81 return true;
146 - }
147 -
148 - public function litespeed_flush_cache(): void {
149 - if ( has_action( 'litespeed_purge_all' ) ) {
150 - do_action( 'litespeed_purge_all' );
151 - }
152 - }
153 -
154 - private function is_transient( $option ): bool {
155 - return str_contains( $option, '_transient' );
156 82 }
157 83 }