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

New Year's Special Discount

"Startup Lifetime" and "Professional Lifetime" licenses are 30% off!

Coupon Code:
HAPPYYEARS30 Copied!
Discount Rate 30%
Expiration Date December 31, 2024