HEX
Server: LiteSpeed
System: Linux pbn-10.isgood.host 5.15.0-164-generic #174-Ubuntu SMP Fri Nov 14 20:25:16 UTC 2025 x86_64
User: pg88zccom (1239)
PHP: 8.1.32
Disabled: NONE
Upload Files
File: /usr/local/lsws/pg88zc.com/html/wp-content/plugins/mlink-plugin/includes/gwd-mlink-settings.php
<?php

namespace GwdMlinkPlugin;

/**
 * GwdMlinkSettings class.
 */
class GwdMlinkSettings
{
    private $viewPath = GWD_MLINK_PLUGIN_DIR . 'includes/views/';
    const SETTING_STATUS_ACTIVED = 'valid';
    const SETTING_STATUS_UNACTIVED = 'invalid';

    public static function getInstance(): self
    {
        static $instance = null;
        if (null === $instance) {
            $instance = new static();
        }

        return $instance;
    }

    public function registerOptions(): void
    {
        $kAppToken = get_option('gwd_mlink_token_value', '');
        if (empty($kAppToken)) {
            add_option('gwd_mlink_token_value', '');
            add_option('gwd_mlink_token_status', self::SETTING_STATUS_UNACTIVED);
        }
    }

    public function addSettingsPage(): void
    {
        add_options_page('GWD Mlink Plugin Settings', 'GWD Mlink Plugin', 'manage_options', 'gwd-mlink-plugin-settings', array($this, 'index'));
    }

    public function addSettingLinks($links): array
    {
        $settingLink = '<a href="options-general.php?page=gwd-mlink-plugin-settings">Settings</a>';
        array_push($links, $settingLink);
        return $links;
    }

    public function index(): void
    {
        $data = [
            'appToken' => get_option('gwd_mlink_token_value', ''),
            'branchCode' => get_option('gwd_mlink_branch_code', ''),
            'appStatus' => get_option('gwd_mlink_token_status', self::SETTING_STATUS_UNACTIVED),
        ];
        echo $this->render('settings/index', $data);
    }

    public function render($path, $params)
    {
        ob_start();

        extract($params);
        require($this->viewPath . $path . '.view.php');

        return ob_get_clean();
    }
}