HEX
Server: Apache/2
System: Linux server1c 2.6.32-042stab145.3 #1 SMP Thu Jun 11 14:05:04 MSK 2020 x86_64
User: jandjware (1008)
PHP: 8.2.23
Disabled: exec,system,passthru,shell_exec,proc_close,proc_open,dl,popen,show_source,posix_kill,posix_mkfifo,posix_getpwuid,posix_setpgid,posix_setsid,posix_setuid,posix_setgid,posix_seteuid,posix_setegid,posix_uname
Upload Files
File: /home/jandjware/public_html/wp-content/plugins/hostinger/includes/Admin/PluginSettings.php
<?php
/**
 * Avoid possibility to get file accessed directly
 */

namespace Hostinger\Admin;

use Hostinger\Admin\Options\PluginOptions;

if ( ! defined( 'ABSPATH' ) ) {
    die;
}

/**
 * Class for handling Settings
 */
class PluginSettings {

    /**
     * @var PluginOptions
     */
    private ?PluginOptions $plugin_options = null;

    /**
     * @param PluginOptions|null $plugin_options
     */
    public function __construct( PluginOptions $plugin_options = null ) {
        if ( ! empty( $plugin_options ) ) {
            $this->plugin_options = $plugin_options;
        }
    }

    /**
     * Return plugin settings
     *
     * @return PluginOptions
     */
    public function get_plugin_settings(): PluginOptions {

        if ( ! empty( $this->plugin_options ) ) {
            $settings = $this->plugin_options;
        } else {
            $settings = get_option(
                HOSTINGER_PLUGIN_SETTINGS_OPTION,
                array()
            );

            $settings = new PluginOptions( $settings );
        }

        return $settings;
    }

    /**
     * @param PluginOptions $plugin_options plugin settings.
     *
     * @return PluginOptions
     */
    public function save_plugin_settings( PluginOptions $plugin_options ): PluginOptions {
        $existing_settings = $this->get_plugin_settings();

        $update = update_option( HOSTINGER_PLUGIN_SETTINGS_OPTION, $plugin_options->to_array(), false );

        return ! empty( $update ) ? $plugin_options : $existing_settings;
    }
}