PluginProbe
Hostinger Tools / 3.0.0
Hostinger Tools v3.0.0
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 / Admin / PluginSettings.php

PluginSettings.php in Hostinger Tools 3.0.0, at includes/Admin/PluginSettings.php

71 lines 1.6 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2 namespace Hostinger\Admin;
3
4 use Hostinger\Admin\Options\PluginOptions;
5
6 /**
7 * Avoid possibility to get file accessed directly
8 */
9 if ( ! defined( 'ABSPATH' ) ) {
10 die;
11 }
12
13 /**
14 * Class for handling Settings
15 */
16 class PluginSettings {
17
18 /**
19 * @var PluginOptions
20 */
21 private ?PluginOptions $plugin_options = null;
22
23 /**
24 * @param PluginOptions|null $plugin_options
25 */
26 public function __construct( PluginOptions $plugin_options = null ) {
27 if ( ! empty( $plugin_options ) ) {
28 $this->plugin_options = $plugin_options;
29 }
30 }
31
32 /**
33 * Return plugin settings
34 *
35 * @return PluginOptions
36 */
37 public function get_plugin_settings( ): PluginOptions {
38
39 if ( ! empty( $this->plugin_options ) ) {
40
41 $settings = $this->plugin_options;
42
43 } else {
44 $settings = get_option(
45 HOSTINGER_PLUGIN_SETTINGS_OPTION,
46 array()
47 );
48
49 $settings = new PluginOptions( $settings );
50 }
51
52 return $settings;
53 }
54
55 /**
56 * @param PluginOptions $plugin_options plugin settings.
57 *
58 * @return PluginOptions
59 */
60 public function save_plugin_settings( PluginOptions $plugin_options ): PluginOptions {
61 $existing_settings = $this->get_plugin_settings();
62
63 $update = update_option( HOSTINGER_PLUGIN_SETTINGS_OPTION, $plugin_options->to_array(), false );
64
65 if ( has_action( 'litespeed_purge_all' ) ) {
66 do_action( 'litespeed_purge_all' );
67 }
68
69 return ! empty( $update ) ? $plugin_options : $existing_settings;
70 }
71 }