HEX
Server: LiteSpeed
System: Linux server44.twelveinks.com 5.14.0-570.12.1.el9_6.x86_64 #1 SMP PREEMPT_DYNAMIC Tue May 13 06:11:55 EDT 2025 x86_64
User: moda (1338)
PHP: 8.1.33
Disabled: NONE
Upload Files
File: /python/moda/public_html/tech/old/theme/wp-content/plugins/whmpress/includes/ajax.php
<?php
/*
* use for all ajax related functions
*/


if (isset($_GET["set_default_currency"])) {
    $Wp_load = realpath(dirname(__FILE__) . '/../../../../wp-load.php');
    if (!is_file($Wp_load)) {
        die("WordPress library not found.");
    }
    require_once($Wp_load);

    $new_curr = isset($_POST["new_curr"]) ? $_POST["new_curr"] : "";
    update_option("whmpress_default_currency", $new_curr);
    echo "OK";
    exit;
}

if (isset($_GET["setCurrency"])) {
    $Wp_load = realpath(dirname(__FILE__) . '/../../../../wp-load.php');
    if (!is_file($Wp_load)) {
        die("WordPress library not found.");
    }
    if (!session_id()) {
        $cacheValue = get_option('whmpress_session_cache_limiter_value');
        session_cache_limiter($cacheValue);
        session_start();
    }
    $_SESSION["whcom_currency"] = $_POST["curency"];
    $_SESSION["whcom_current_currency_id"] = $_POST["curency"];

    echo "OK";
    exit;
}


if (isset($_REQUEST["show_price"])) {
    $show_price = strtolower($_REQUEST["show_price"]);
    if ($show_price == "1" || $show_price == "yes" || $show_price = "true") {
        $_REQUEST["show_price"] = "yes";
    }

} else {
    $_REQUEST["show_price"] = "no";
}


if (isset($_REQUEST["show_years"])) {
    $show_years = strtolower($_REQUEST["show_years"]);
} else {
    $show_years = "no";
}

if ($show_years == "1" || $show_years == "yes" || $show_years == "true") {
    $show_years = "yes";
}


$_transfer_enabled = "no";

if (isset($_REQUEST["enable_transfer_link"])) {
    $enable_transfer_link = $_REQUEST["enable_transfer_link"];
} else {
    $enable_transfer_link = "no";
}

if ($enable_transfer_link == "1" || strtolower($enable_transfer_link) == "yes" || $enable_transfer_link === true) {
    $_transfer_enabled = "yes";
}


if (isset($_REQUEST["disable_domain_spinning"])) {
    $disable_domain_spinning = $_REQUEST["disable_domain_spinning"];
} else {
    $disable_domain_spinning = "0";
}

$style = (!empty($_REQUEST["style"])) ? strtolower(esc_attr($_REQUEST["style"])) : '';


$load_more = whmpress_get_option('load_more_button_text');
$show_after_num_results = whmpress_get_option('show_html_message_after_results');
$html_message_to_show = whmpress_get_option('html_message_in_searched_results');
if ($load_more == "") {
    $load_more = __("Load More", "whmpress");
}


$register_text = whmp_get_domain_message("register_text", "", "", "");
$recommended_text = whmp_get_domain_message("recommended", "", "", "");
$order_landing_page = isset($_REQUEST["order_landing_page"]) ? $_REQUEST["order_landing_page"] : "";
$order_link_new_tab = isset($_REQUEST["order_link_new_tab"]) ? $_REQUEST["order_link_new_tab"] : "";

$_REQUEST["params"]["register_text"] = $register_text;

include_once(WHMP_PLUGIN_DIR . "/includes/whois.class.php");


//------------ Domain related Ajax Functions ----------
global $wpdb;
global $WHMPress;
$whois = new Whois();


switch ($_POST["do"]) {

    case "getDomainDataBulk":

        //todo: improve code to get parameters, it is not in concise
        $append_url = $_REQUEST["params"]["append_url"];
        $skip_extra = whmp_tfc($_REQUEST["skip_extra"]);

        $searchonly = isset($_POST["searchonly"]) ? $_POST["searchonly"] : "*";
        if (isset($_POST['extensions']) && !empty($_POST['extensions'])) {
            $searchonly = $_POST['extensions'];
        }

        if (!isset($_POST["domain"]) && isset($_POST["search_domain"])) {
            $_POST["domain"] = $_POST["search_domain"];
        }

        //--messages for invalid domain
        if (isset($_REQUEST["domain"])) {
            $domain = $_REQUEST["domain"];
        } else if (isset($_REQUEST["search_domain"])) {
            $domain = $_REQUEST["search_domain"];
        } else {
            $domain = "";
        }

        if ($domain == "") {
            echo "<div class='whmp-domain-required'>" . __("Domain name required.", "whmpress") . "</div>";
            exit;
        }

        if (!$WHMPress->is_valid_domain_name($domain)) {
            echo "<div class='whmp-not-valid-name'>" . __("Domain <span>" . $domain . "</span> is not a valid domain name.", "whmpress") . "</div>";
            exit;
        }


        // Record search logs if "Enable logs for searches" is enabled.
        if (get_option('enable_logs') == "1") {
            $_insert_data = [
                "search_term" => $_REQUEST["domain"],
                "search_ip" => $WHMPress->ip_address(),
                "search_time" => current_time('mysql'),
            ];

            if ($_insert_data["search_term"] <> "") {
                global $wpdb;
                $wpdb->insert(whmp_get_logs_table_name(), $_insert_data);
            }

        }


        //--------make domain array--------
        $domain = whmp_get_domain_clean($domain);
        $dom_ext = whmp_get_domain_extension($domain["full"]);

        $dom = [];
        $dom["ext"] = ($dom_ext == "") ? whmp_get_domain_extension_db() : $dom_ext;
        $dom["short"] = $domain["short"];
        $dom["full"] = $dom["short"] . "." . $dom["ext"];

        $dom_ext = $dom["ext"]; //save first searched extension



        /*-1-********************************************-*
        *-----------------top-part
        *-*************************************************/

        if (true) {
            //--------build smarty array with what ever information we have
            $_REQUEST["params"]["www_text"] = __("WWW", "whmpress");
            $_REQUEST["params"]["whois_text"] = __("WHOIS", "whmpress");
            $_REQUEST["params"]["transfer_text"] = __("Transfer", "whmpress");
            if (isset($_REQUEST["params"])) {
                $smarty_array["params"] = $_REQUEST["params"];
                $params = $_REQUEST["params"];
            }

            //---Get whois info
            $whois_server = whmp_get_whois_servers($dom["ext"]);

            //---Append whois server info to domain
            $dom["info"] = $whois_server[$dom["ext"]];


            //---check availability

            $result = $whois->whoislookup_i($dom);


            $dom["og"] = false;


            //---build top result

            $__smarty = whmp_domain_search_smarty($dom, $params, $result);


            //---add to smarty domain array
            $smarty_array = array_merge($smarty_array, $__smarty);

            /*            // if domain spinnnig is disabled, no need to enter loop
                        if ($disable_domain_spinning <> "1")
                            {
                                $smarty_array["recommended_domains_text"] = $recommended_text;
                            }*/
            //todo: check if it is already being added by whmp_domain_search_smarty

            $smarty_array["order_button_text"] = $register_text;


        }

        /*-2-********************************************-*
        *-----------------first-loop
        *-*************************************************/
        if ($disable_domain_spinning <> "1") {
            $smarty_array["recommended_domains_text"] = $recommended_text;


            $whois_servers = whmp_get_whois_servers();
            if ($skip_extra) {
                $whois_servers = whmp_filter_whois_servers($whois_servers, "remove_extra");
            }

            if (is_string($searchonly) && $searchonly == "*") {
                //already have full domains

            } elseif (!is_array($searchonly) && is_string($searchonly)) {
                $searchonly = str_replace(" ", "", $searchonly);
                $searchonly = explode(",", $searchonly);
                if (count($searchonly) > 1) {
                    $whois_servers = whmp_filter_whois_servers($whois_servers, $searchonly);
                }
            }

            $PageSize = get_option('no_of_domains_to_show', '2');
            $whois_servers = array_slice($whois_servers, 0, $PageSize);

            //----skip-extra-end---
            $smarty_domains = [];


            foreach ($whois_servers as $ext => $info) {

                if (ltrim($ext, ".") == $dom_ext) { //if it was the first domain, skip it
                    continue;
                }
                //--------------------------
                $dom["ext"] = $ext;
                $dom["full"] = $dom["short"] . "." . $dom["ext"];
                $dom["info"] = $info;
                $dom["og"] = true;

                $result = $whois->whoislookup_i($dom);

                $__smarty = whmp_domain_search_smarty($dom, $params, $result);

                $smarty_domains[] = $__smarty;
            }


            /*
             * --------Load more---------
             */

            if (is_string($searchonly) && $searchonly == "*" && $disable_domain_spinning == "0") {

                $smarty_load_more = "<div id='load-more-div' class='load-more-div'><button type='button'>$load_more</button></div>";
            }

        }

        $html_template = whmpress_get_domain_search_template("first", $style);
        if (is_file($html_template)) {
            $vars = [
                "data" => $smarty_array,
                "domains" => $smarty_domains,
                "load_more" => $smarty_load_more,
                "form_url" => esc_url($WHMPress->get_whmcs_url("domainchecker"))
            ];

            $OutputString = whmp_smarty_template($html_template, $vars);
            echo $OutputString;
        }

        break;

    case "getDomainData":

        //todo: improve code to get parameters, it is not in concise
        $append_url = $_REQUEST["params"]["append_url"];
        $skip_extra = whmp_tfc($_REQUEST["skip_extra"]);
        $desired_domain_list = $_REQUEST["params"]["desired_domain_list"];

        $searchonly = isset($_POST["searchonly"]) ? $_POST["searchonly"] : "*";
        if (isset($_POST['extensions']) && !empty($_POST['extensions'])) {
            $searchonly = $_POST['extensions'];
        }

        if (!isset($_POST["domain"]) && isset($_POST["search_domain"])) {
            $_POST["domain"] = $_POST["search_domain"];
        }

        //--messages for invalid domain
        if (isset($_REQUEST["domain"])) {
            $domain = $_REQUEST["domain"];
        } else if (isset($_REQUEST["search_domain"])) {
            $domain = $_REQUEST["search_domain"];
        } else {
            $domain = "";
        }

        if ($domain == "") {
            echo "<div class='whmp-domain-required'>" . __("Domain name required.", "whmpress") . "</div>";
            exit;
        }

        if (!$WHMPress->is_valid_domain_name($domain)) {
            echo "<div class='whmp-not-valid-name'>" . __("Domain <span>" . $domain . "</span> is not a valid domain name.", "whmpress") . "</div>";
            exit;
        }
        if (!$WHMPress->is_valid_domain_pk($domain)) {
            echo "<div class='whmp-not-valid-name'>" . __("PKNIC is not offering 3 character domain names with “.pk”. Although names will appear as available on PKNIC website but they cannot be registered.", "whmpress") . "</div>";
            exit;
        }

        // Record search logs if "Enable logs for searches" is enabled.
        if (get_option('enable_logs') == "1") {
            $_insert_data = [
                "search_term" => $_REQUEST["domain"],
                "search_ip" => $WHMPress->ip_address(),
                "search_time" => current_time('mysql'),
            ];

            if ($_insert_data["search_term"] <> "") {
                global $wpdb;
                $wpdb->insert(whmp_get_logs_table_name(), $_insert_data);
            }

        }


        //--------make domain array--------
        $domain = whmp_get_domain_clean($domain);
        $dom_ext = whmp_get_domain_extension($domain["full"]);

        $dom = [];
        if($desired_domain_list == '') {
            $dom["ext"] = ($dom_ext == "") ? whmp_get_domain_extension_db() : $dom_ext;
            $dom["short"] = $domain["short"];
            $dom["full"] = $dom["short"] . "." . $dom["ext"];
        }else{
            $desired_domains_data = explode(',',$desired_domain_list);
            $dom["ext"] = ($dom_ext == "") ? $desired_domains_data['0'] : $dom_ext;
            $dom["short"] = $domain["short"];
            $dom["full"] = $dom["short"] . "." . $dom["ext"];
        }

        $dom_ext = $dom["ext"]; //save first searched extension

        /*-1-********************************************-*
        *-----------------top-part
        *-*************************************************/

        //if (true) {
            //--------build smarty array with what ever information we have
            $_REQUEST["params"]["www_text"] = __("WWW", "whmpress");
            $_REQUEST["params"]["whois_text"] = __("WHOIS", "whmpress");
            $_REQUEST["params"]["transfer_text"] = __("Transfer", "whmpress");
            if (isset($_REQUEST["params"])) {
                $smarty_array["params"] = $_REQUEST["params"];
                $params = $_REQUEST["params"];
            }

            //---Get whois info
            $whois_server = whmp_get_whois_servers($dom["ext"]);

            //---Append whois server info to domain
            $dom["info"] = $whois_server[$dom["ext"]];

            //---check availability
            $result = $whois->whoislookup_i($dom);
            $dom["og"] = false;

            //---build top result
            $__smarty = whmp_domain_search_smarty($dom, $params, $result);

            //---add to smarty domain array
            $smarty_array = array_merge($smarty_array, $__smarty);

            /*            // if domain spinnnig is disabled, no need to enter loop
                        if ($disable_domain_spinning <> "1")
                            {
                                $smarty_array["recommended_domains_text"] = $recommended_text;
                            }*/
            //todo: check if it is already being added by whmp_domain_search_smarty
            $smarty_array["order_button_text"] = $register_text;
            $smarty_array["show_after_num_results"] = $show_after_num_results;
            $smarty_array["html_message_to_show"] = $html_message_to_show;
        //}
        /*-2-********************************************-*
        *-----------------first-loop
        *-*************************************************/
        if ($disable_domain_spinning <> "1") {
            $smarty_array["recommended_domains_text"] = $recommended_text;


            $whois_servers = whmp_get_whois_servers();
            if ($skip_extra) {
                $whois_servers = whmp_filter_whois_servers($whois_servers, "remove_extra");
            }

            //==
            if($desired_domain_list != ''){
                $whois_servers = whmp_filter_desired_whoisservers($desired_domain_list,$whois_servers);
            }
            if (is_string($searchonly) && $searchonly == "*") {
                //already have full domains

            } elseif (!is_array($searchonly) && is_string($searchonly)) {
                $searchonly = str_replace(" ", "", $searchonly);
                $searchonly = explode(",", $searchonly);
                if (count($searchonly) > 1) {
                    $whois_servers = whmp_filter_whois_servers($whois_servers, $searchonly);
                }
            }


            if($desired_domain_list == '') {
                $PageSize = get_option('no_of_domains_to_show', '2');
                $whois_servers = array_slice($whois_servers, 0, $PageSize);
            }

            //----skip-extra-end---
            $smarty_domains = [];

            foreach ($whois_servers as $ext => $info) {

                if (ltrim($ext, ".") == $dom_ext) { //if it was the first domain, skip it
                    continue;
                }
                //--------------------------
                $dom["ext"] = $ext;
                $dom["full"] = $dom["short"] . "." . $dom["ext"];
                $dom["info"] = $info;
                $dom["og"] = true;

                $result = $whois->whoislookup_i($dom);

                $__smarty = whmp_domain_search_smarty($dom, $params, $result);

                $smarty_domains[] = $__smarty;
            }


            /*
             * --------Load more---------
             */

            if (is_string($searchonly) && $searchonly == "*" && $disable_domain_spinning == "0" && $desired_domain_list == '') {

                $smarty_load_more = "<div id='load-more-div' class='load-more-div'><button type='button'>$load_more</button></div>";
            }

        }

        $html_template = whmpress_get_domain_search_template("first", $style);
        if (is_file($html_template)) {
            $vars = [
                "data" => $smarty_array,
                "domains" => $smarty_domains,
                "load_more" => $smarty_load_more,
                "form_url" => esc_url($WHMPress->get_whmcs_url("domainchecker"))
            ];

            $OutputString = whmp_smarty_template($html_template, $vars);
            echo $OutputString;
        }

        break;

    case "loadWhoisPage": {

        $append_url = $_REQUEST["params"]["append_url"];
        $smarty_load_more = "";

        $skip_extra = whmp_tfc($_REQUEST["skip_extra"]);

        $domain = whmp_get_domain_clean($_REQUEST["domain"]);
        $dom["short"] = $domain["short"];

        $params = $_REQUEST["params"];


        $html_template = whmpress_get_domain_search_template("more");

        //---1. Get whois servers
        $whois_servers = whmp_get_whois_servers();

        //---2. Filter domains, as per shortcode parameters,  get only that we need to search
        if ($skip_extra) {
            $whois_servers = whmp_filter_whois_servers($whois_servers, "remove_extra");
        }

        if (is_string($searchonly) && $searchonly == "*") {
            //already have full domains

        } elseif (!is_array($searchonly) && is_string($searchonly)) {
            $searchonly = str_replace(" ", "", $searchonly);
            $searchonly = explode(",", $searchonly);
            if (count($searchonly) > 1) {
                $whois_servers = whmp_filter_whois_servers($whois_servers, $searchonly);
            }
        }


        //----2. creating pagination
        $PageSize = get_option('no_of_domains_to_show', '2');
        $start = ($_REQUEST["page"] - 1) * ($PageSize);
        $whois_servers = array_slice($whois_servers, $start, $PageSize);

        $smarty_domains = [];

        $whois = new Whois;
        foreach ($whois_servers as $ext => $info) {

            //---domain array for whois server
            $dom["ext"] = $ext;
            $dom["full"] = $dom["short"] . "." . $dom["ext"];
            $dom["info"] = $info;
            $dom["og"] = true;

            //---check availability
            $result = $whois->whoislookup_i($dom);

            //---build smarty veriables for this domain

            $__smarty = whmp_domain_search_smarty($dom, $params, $result);

            //---append to smarty domain array
            $smarty_domains[] = $__smarty;
        }


        $load_more = whmpress_get_option('load_more_button_text');
        $load_more = ($load_more == "") ? esc_html__("Load More", "whmpress") : $load_more;

        if (sizeof($whois_servers) >= $PageSize) {
            $smarty_load_more = "<div Class='load-more-div' id='load-more-div'>";
            $smarty_load_more .= "<button type = 'button' >" . $load_more . " </button >";
            $smarty_load_more .= "</div > ";
        }
        if (is_file($html_template)) {
            $vars = [
                "domains" => $smarty_domains,
                "load_more" => $smarty_load_more
            ];

            $_REQUEST["params"]["www_text"] = __("WWW", "whmpress");
            $_REQUEST["params"]["whois_text"] = __("WHOIS", "whmpress");
            $_REQUEST["params"]["transfer_text"] = __("Transfer", "whmpress");
            if (isset($_REQUEST["params"])) {
                $vars["params"] = $_REQUEST["params"];
            }
            if (!is_array($vars["params"])) {
                $vars["params"] = json_decode($vars["params"], true);
            }

            $OutputString = whmp_smarty_template($html_template, $vars);
            echo $OutputString;
        }
        break;
    }
    case 'whmpress_domain_search_ajax_extended_results' : {
        $response = [];

        $response['status'] = 'OK';
        $response['post'] = $_POST;
        $sld = (!empty(esc_attr($_POST['sld']))) ? esc_attr($_POST['sld']) : '';
        $tld = (!empty(esc_attr($_POST['tld']))) ? esc_attr($_POST['tld']) : '';
        $is_title = (!empty(esc_attr($_POST['is_title']))) ? esc_attr($_POST['is_title']) : false;
        $response['title_val'] = $is_title;

        $params = (!empty($_POST['params']) && is_array($_POST['params'])) ? $_POST['params'] : [];


        $dom["ext"] = $tld;
        $dom["short"] = $sld;
        $dom["full"] = $sld . "." . $tld;
        $dom["info"] = whmp_get_whois_servers($tld)[$tld];
        $dom["og"] = true;

        $result = $whois->whoislookup_i($dom);


        $result_details = whmpress_domain_search_ajax_extended_search_result_details($dom, $params, $result);

        ob_start();
        $style = isset($params['style']) ? (string)$params['style'] : ''; // Ensure style is a string
        $style = sanitize_file_name($style); // Sanitize the file name
        $file = WHMP_PLUGIN_PATH . '/includes/shortcodes/domain_search_ajax_extended_parts/results/' . $style . '.php';

        if (is_file($file)) {
            include $file;
        } else {
            //todo: to be replaced with actual message
            ?>
            Invalid Style
        <?php }

        $response['response_html'] = ob_get_clean();

        echo json_encode($response, JSON_FORCE_OBJECT);

        break;
    }
    case"AiDomainSearch":

        if (isset($_POST['domain'])) {

            $query = htmlspecialchars($_POST['domain']); // Sanitize user input
            $query = rtrim($query, '.'); // Remove trailing dots
            // Google Gemini API endpoint and your API key
            $api_key = 'AIzaSyC-34-cw4JOlFO2GzyN0yrHH1MlaZz-qvM'; // Replace with your actual API key
            $api_url = 'https://generativelanguage.googleapis.com/v1beta/models/gemini-1.5-flash:generateContent?key=' . $api_key;

            // Data to send in the request
            $data = json_encode([
                'contents' => [
                    [
                        'parts' => [
                            [
                                'text' => "Suggest domain names for a tech startup specializing in custom $query this($query) related name new list and search Available domain list. Provide 15 domain name ideas. Do not include TLDs. and showing only name and not show any number list"
                            ]
                        ]
                    ]
                ]
            ]);

            // Initialize cURL session
            $ch = curl_init($api_url);
            curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
            curl_setopt($ch, CURLOPT_HTTPHEADER, [
                'Content-Type: application/json'
            ]);
            curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
            curl_setopt($ch, CURLOPT_POST, true); // Specify POST request

            // Execute the cURL request
            $response = curl_exec($ch);
            $http_code = curl_getinfo($ch, CURLINFO_HTTP_CODE); // Get the HTTP status code
            curl_close($ch);

            // Handle the response
            if ($http_code == 200) {
                $response_data = json_decode($response, true);
                if (isset($response_data['candidates'][0]['content']['parts'][0]['text'])) {
                    $suggestions = trim($response_data['candidates'][0]['content']['parts'][0]['text']);
                    if (!empty($suggestions)) {
                        $suggestions_list = explode("\n", $suggestions);
                        $suggestions_list = str_replace('-', '', $suggestions_list);
                        foreach ($suggestions_list as $domain_name){
                            $domains[] = $domain_name;

                        }

//                        echo '<ul>';
//                        foreach ($suggestions_list as $suggestion) {
//                            if (!empty(trim($suggestion))) {
//                                echo '<li>' . htmlspecialchars(trim($suggestion)) . '</li>';
//                            }
//                        }
//                        echo '</ul>';
                        //todo: improve code to get parameters, it is not in concise
                        $append_url = $_REQUEST["params"]["append_url"];
                        $skip_extra = whmp_tfc($_REQUEST["skip_extra"]);
                        $desired_domain_list = $_REQUEST["params"]["desired_domain_list"];

                        $searchonly = isset($_POST["searchonly"]) ? $_POST["searchonly"] : "*";
                        if (isset($_POST['extensions']) && !empty($_POST['extensions'])) {
                            $searchonly = $_POST['extensions'];
                        }

                        if (!isset($_POST["domain"]) && isset($_POST["search_domain"])) {
                            $_POST["domain"] = $_POST["search_domain"];
                        }

                        //--messages for invalid domain
                        if (isset($_REQUEST["domain"])) {
                            $domain = $_REQUEST["domain"];
                        } else if (isset($_REQUEST["search_domain"])) {
                            $domain = $_REQUEST["search_domain"];
                        } else {
                            $domain = "";
                        }

                        if ($domain == "") {
                            echo "<div class='whmp-domain-required'>" . __("Domain name required.", "whmpress") . "</div>";
                            exit;
                        }

                        if (!$WHMPress->is_valid_domain_name($domain)) {
                            echo "<div class='whmp-not-valid-name'>" . __("Domain <span>" . $domain . "</span> is not a valid domain name.", "whmpress") . "</div>";
                            exit;
                        }
                        if (!$WHMPress->is_valid_domain_pk($domain)) {
                            echo "<div class='whmp-not-valid-name'>" . __("PKNIC is not offering 3 character domain names with “.pk”. Although names will appear as available on PKNIC website but they cannot be registered.", "whmpress") . "</div>";
                            exit;
                        }

                        // Record search logs if "Enable logs for searches" is enabled.
                        if (get_option('enable_logs') == "1") {
                            $_insert_data = [
                                "search_term" => $_REQUEST["domain"],
                                "search_ip" => $WHMPress->ip_address(),
                                "search_time" => current_time('mysql'),
                            ];

                            if ($_insert_data["search_term"] <> "") {
                                global $wpdb;
                                $wpdb->insert(whmp_get_logs_table_name(), $_insert_data);
                            }

                        }


                        //--------make domain array--------
                        $domain = whmp_get_domain_clean($domain);
                        $dom_ext = whmp_get_domain_extension($domain["full"]);

                        $dom = [];
                        if($desired_domain_list == '') {
                            $dom["ext"] = ($dom_ext == "") ? whmp_get_domain_extension_db() : $dom_ext;
                            $dom["short"] = $domain["short"];
                            $dom["full"] = $dom["short"] . "." . $dom["ext"];
                        }else{
                            $desired_domains_data = explode(',',$desired_domain_list);
                            $dom["ext"] = ($dom_ext == "") ? $desired_domains_data['0'] : $dom_ext;
                            $dom["short"] = $domain["short"];
                            $dom["full"] = $dom["short"] . "." . $dom["ext"];
                        }

                        $dom_ext = $dom["ext"]; //save first searched extension

                        /*-1-********************************************-*
                        *-----------------top-part
                        *-*************************************************/

                        //if (true) {
                        //--------build smarty array with what ever information we have
                        $_REQUEST["params"]["www_text"] = __("WWW", "whmpress");
                        $_REQUEST["params"]["whois_text"] = __("WHOIS", "whmpress");
                        $_REQUEST["params"]["transfer_text"] = __("Transfer", "whmpress");
                        if (isset($_REQUEST["params"])) {
                            $smarty_array["params"] = $_REQUEST["params"];
                            $params = $_REQUEST["params"];
                        }

                        //---Get whois info
                        $whois_server = whmp_get_whois_servers($dom["ext"]);

                        //---Append whois server info to domain
                        $dom["info"] = $whois_server[$dom["ext"]];

                        //---check availability
                        $result = $whois->whoislookup_i($dom);
                        $dom["og"] = false;

                        //---build top result
                        $__smarty = whmp_domain_search_smarty($dom, $params, $result);

                        //---add to smarty domain array
                        $smarty_array = array_merge($smarty_array, $__smarty);

                        /*            // if domain spinnnig is disabled, no need to enter loop
                                    if ($disable_domain_spinning <> "1")
                                        {
                                            $smarty_array["recommended_domains_text"] = $recommended_text;
                                        }*/
                        //todo: check if it is already being added by whmp_domain_search_smarty
                        $smarty_array["order_button_text"] = $register_text;
                        $smarty_array["show_after_num_results"] = $show_after_num_results;
                        $smarty_array["html_message_to_show"] = $html_message_to_show;
                        //}
                        /*-2-********************************************-*
                        *-----------------first-loop
                        *-*************************************************/
                        if ($disable_domain_spinning <> "1") {
                            $smarty_array["recommended_domains_text"] = $recommended_text;

                            $whois_servers = whmp_get_whois_servers();
                            if ($skip_extra) {
                                $whois_servers = whmp_filter_whois_servers($whois_servers, "remove_extra");
                            }

                            //== Filter by desired domains
                            if ($desired_domain_list != '') {
                                $whois_servers = whmp_filter_desired_whoisservers($desired_domain_list, $whois_servers);
                            }

                            if (is_string($searchonly) && $searchonly == "*") {
                                // already have full domains
                            } elseif (!is_array($searchonly) && is_string($searchonly)) {
                                $searchonly = str_replace(" ", "", $searchonly);
                                $searchonly = explode(",", $searchonly);
                                if (count($searchonly) > 1) {
                                    $whois_servers = whmp_filter_whois_servers($whois_servers, $searchonly);
                                }
                            }

                            if ($desired_domain_list == '') {
                                $PageSize = get_option('no_of_domains_to_show', '2');
                                $whois_servers = array_slice($whois_servers, 0, $PageSize);
                            }

                            //----skip-extra-end---

                            // Multiple domain names array
//                            $domains = ['example1', 'example2', 'example3']; // Add your multiple domain names here
//                            $tld = ".com"; // You can change this to the desired TLD (e.g., ".com", ".net")

                            $smarty_domains = [];

                            // Loop over each domain name
                            foreach ($domains as $domain_name) {

                                foreach ($whois_servers as $ext => $info) {
//                                    if (ltrim($ext, ".") == $dom_ext) { // If it was the first domain, skip it
//                                        continue;
//                                    }
                                    //--------------------------
                                    $dom["short"] = $domain_name; // Short domain name without TLD
                                    $dom["ext"] = $ext; // Extension from WHOIS server
                                    $dom["full"] = $dom["short"] . "." . $dom["ext"]; // Full domain with extension
                                    $dom["info"] = $info;
                                    $dom["og"] = true;

                                    // Perform WHOIS lookup
                                    $result = $whois->whoislookup_i($dom);

                                    // Process domain result
                                    $__smarty = whmp_domain_search_smarty($dom, $params, $result);

                                    // Store the result for this domain
                                    $smarty_domains[] = $__smarty;
                                }
                            }

                            /*
                             * --------Load more---------
                             */
                            if (is_string($searchonly) && $searchonly == "*" && $disable_domain_spinning == "0" && $desired_domain_list == '') {
                                $smarty_load_more = "<div id='load-more-div' class='load-more-div'><button type='button'>$load_more</button></div>";
                            }
                        }

// Render the output template
                        $html_template = whmpress_get_domain_search_template("first", $style);
                        if (is_file($html_template)) {
                            $vars = [
                                "data" => $smarty_array,
                                "domains" => $smarty_domains,
                                "load_more" => $smarty_load_more,
                                "form_url" => esc_url($WHMPress->get_whmcs_url("domainchecker"))
                            ];

                            $OutputString = whmp_smarty_template($html_template, $vars);
                            echo $OutputString;
                        }
                    } else {
                        echo 'No suggestions found. Please provide more specific details.';
                    }
                } else {
                    echo 'No suggestions found. Please provide more specific details.';
                }
            } else {
                echo 'Error connecting to the AI service. HTTP Status Code: ' . $http_code . '. Response: ' . htmlspecialchars($response);
            }
        }
        break;


}

wp_die(); // this is required to return a proper result