PluginProbe
Hostinger Tools / 3.0.79
Hostinger Tools v3.0.79
3.0.79 3.0.78 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 All 110 releases
hostinger / includes / Admin / PluginSettings.php

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