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 / Admin / PluginSettings.php

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

67 lines 1.5 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 /**
55 * @param PluginOptions $plugin_options plugin settings.
56 *
57 * @return PluginOptions
58 */
59 public function save_plugin_settings( PluginOptions $plugin_options ): PluginOptions {
60 $existing_settings = $this->get_plugin_settings();
61
62 $update = update_option( HOSTINGER_PLUGIN_SETTINGS_OPTION, $plugin_options->to_array(), false );
63
64 return ! empty( $update ) ? $plugin_options : $existing_settings;
65 }
66 }
67