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 © 2024. All Rights Reserved.
Join Our Discord Channel
Top