Developer Center

import_domain() - Import Domain Names

It is used for "Import" function in Module Settings. It enables the transfer of any domain name on the registrar to any customer.

It is called from “controllers/import.php” file in the module.

You can use the function, as shown in the example.

public function import_domain($data=[]){
    $config     = $this->config;

    $imports = [];

    Helper::Load(["Orders","Products","Money"]);

    foreach($data AS $domain=>$datum){
        $domain_parse   = Utility::domain_parser("http://".$domain);
        $sld            = $domain_parse["host"];
        $tld            = $domain_parse["tld"];
        $user_id        = (int) $datum["user_id"];
        if(!$user_id) continue;
        $info           = $this->get_info([
            'domain'    => $domain,
            'name'      => $sld,
            'tld'       => $tld,
        ]);
        if(!$info) continue;

        $user_data          = User::getData($user_id,"id,lang","array");
        $ulang              = $user_data["lang"];
        $locallang          = Config::get("general/local");
        $productID          = Models::$init->db->select("id")->from("tldlist")->where("name","=",$tld);
        $productID          = $productID->build() ? $productID->getObject()->id : false;
        if(!$productID) continue;
        $productPrice       = Products::get_price("register","tld",$productID);
        $productPrice_amt   = $productPrice["amount"];
        $productPrice_cid   = $productPrice["cid"];
        $start_date         = $info["creation_time"];
        $end_date           = $info["end_time"];
        $year               = 1;

        $options            = [
            "established"         => true,
            "group_name"          => Bootstrap::$lang->get_cm("website/account_products/product-type-names/domain",false,$ulang),
            "local_group_name"    => Bootstrap::$lang->get_cm("website/account_products/product-type-names/domain",false,$locallang),
            "category_id"         => 0,
            "domain"              => $domain,
            "name"                => $sld,
            "tld"                 => $tld,
            "dns_manage"          => true,
            "whois_manage"        => true,
            "transferlock"        => $info["transferlock"],
            "cns_list"            => isset($info["cns"]) ? $info["cns"] : [],
            "whois"               => isset($info["whois"]) ? $info["whois"] : [],
        ];

        if(isset($info["whois_privacy"]) && $info["whois_privacy"]){
            $options["whois_privacy"] = $info["whois_privacy"]["status"] == "enable";
            $wprivacy_endtime   = DateManager::ata();
            if(isset($info["whois_privacy"]["end_time"]) && $info["whois_privacy"]["end_time"]){
                $wprivacy_endtime = $info["whois_privacy"]["end_time"];
                $options["whois_privacy_endtime"] = $wprivacy_endtime;
            }
        }

        if(isset($info["ns1"]) && $info["ns1"]) $options["ns1"] = $info["ns1"];
        if(isset($info["ns2"]) && $info["ns2"]) $options["ns2"] = $info["ns2"];
        if(isset($info["ns3"]) && $info["ns3"]) $options["ns3"] = $info["ns3"];
        if(isset($info["ns4"]) && $info["ns4"]) $options["ns4"] = $info["ns4"];


        $order_data             = [
            "owner_id"          => (int) $user_id,
            "type"              => "domain",
            "product_id"        => (int) $productID,
            "name"              => $domain,
            "period"            => "year",
            "period_time"       => (int) $year,
            "amount"            => (float) $productPrice_amt,
            "total_amount"      => (float) $productPrice_amt,
            "amount_cid"        => (int) $productPrice_cid,
            "status"            => "active",
            "cdate"             => $start_date,
            "duedate"           => $end_date,
            "renewaldate"       => DateManager::Now(),
            "module"            => $config["meta"]["name"],
            "options"           => Utility::jencode($options),
            "unread"            => 1,
        ];

        $insert                 = Orders::insert($order_data);
        if(!$insert) continue;

        if(isset($options["whois_privacy"])){
            $amount = Money::exChange($this->whidden["amount"],$this->whidden["currency"],$productPrice_cid);
            $start  = DateManager::Now();
            $end    = isset($wprivacy_endtime) ? $wprivacy_endtime : DateManager::ata();
            Orders::insert_addon([
                'invoice_id' => 0,
                'owner_id' => $insert,
                "addon_key"     => "whois-privacy",
                'addon_id' => 0,
                'addon_name' => Bootstrap::$lang->get_cm("website/account_products/whois-privacy",false,$ulang),
                'option_id'  => 0,
                "option_name"   => Bootstrap::$lang->get("needs/iwwant",$ulang),
                'period'       => 1,
                'period_time'  => "year",
                'status'       => "active",
                'cdate'        => $start,
                'renewaldate'  => $start,
                'duedate'      => $end,
                'amount'       => $amount,
                'cid'          => $productPrice_cid,
                'unread'       => 1,
            ]);
        }
        $imports[] = $order_data["name"]." (#".$insert.")";
    }
    
    if($imports){
        $adata      = UserManager::LoginData("admin");
        User::addAction($adata["id"],"alteration","domain-imported",[
            'module'   => $config["meta"]["name"],
            'imported'  => implode(", ",$imports),
        ]);
    }

    return $imports;
}
domains() - List of registered domain names apply_import_tlds() - Import All Extensions

Do you have any questions?

Feel free to contact us
Contact Us
Copyright © 2025. All Rights Reserved.
Join Our Discord Channel
Top

Sun Summer's
Last Chance!

Enjoy 30% Off Startup and Professional
Lifetime Licenses – This Summer Only!

Coupon Code:
SUMMER30 Copied!
Limited Stock!