apply_import_tlds() - Import All Extensions
It is used to import all extensions on the registrar via API.
It is called from the "controllers / import-tld.php” file in the module folder.
You can use the function, as shown in the example.
public function apply_import_tlds(){
$cost_cid = $this->config["settings"]["cost-currency"]; // Currency ID
$prices = $this->cost_prices();
if(!$prices) return false;
Helper::Load(["Products","Money"]);
$profit_rate = Config::get("options/domain-profit-rate");
foreach($prices AS $name=>$val){
$api_cost_prices = [
'register' => $val["register"],
'transfer' => $val["transfer"],
'renewal' => $val["renewal"],
];
$paperwork = 0;
$epp_code = 1;
$dns_manage = 1;
$whois_privacy = 1;
$module = $this->config["meta"]["name"];
$check = Models::$init->db->select()->from("tldlist")->where("name","=",$name);
if($check->build()){
$tld = $check->getAssoc();
$pid = $tld["id"];
$reg_price = Products::get_price("register","tld",$pid);
$ren_price = Products::get_price("renewal","tld",$pid);
$tra_price = Products::get_price("transfer","tld",$pid);
$tld_cid = $reg_price["cid"];
$register_cost = Money::deformatter($api_cost_prices["register"]);
$renewal_cost = Money::deformatter($api_cost_prices["renewal"]);
$transfer_cost = Money::deformatter($api_cost_prices["transfer"]);
// ExChanges
$register_cost = Money::exChange($register_cost,$cost_cid,$tld_cid);
$renewal_cost = Money::exChange($renewal_cost,$cost_cid,$tld_cid);
$transfer_cost = Money::exChange($transfer_cost,$cost_cid,$tld_cid);
$reg_profit = Money::get_discount_amount($register_cost,$profit_rate);
$ren_profit = Money::get_discount_amount($renewal_cost,$profit_rate);
$tra_profit = Money::get_discount_amount($transfer_cost,$profit_rate);
$register_sale = $register_cost + $reg_profit;
$renewal_sale = $renewal_cost + $ren_profit;
$transfer_sale = $transfer_cost + $tra_profit;
Products::set("domain",$pid,[
'paperwork' => $paperwork,
'epp_code' => $epp_code,
'dns_manage' => $dns_manage,
'whois_privacy' => $whois_privacy,
'register_cost' => $register_cost,
'renewal_cost' => $renewal_cost,
'transfer_cost' => $transfer_cost,
'module' => $module,
]);
Models::$init->db->update("prices",[
'amount' => $register_sale,
'cid' => $tld_cid,
])->where("id","=",$reg_price["id"])->save();
Models::$init->db->update("prices",[
'amount' => $renewal_sale,
'cid' => $tld_cid,
])->where("id","=",$ren_price["id"])->save();
Models::$init->db->update("prices",[
'amount' => $transfer_sale,
'cid' => $tld_cid,
])->where("id","=",$tra_price["id"])->save();
}
else{
$tld_cid = $cost_cid;
$register_cost = Money::deformatter($api_cost_prices["register"]);
$renewal_cost = Money::deformatter($api_cost_prices["renewal"]);
$transfer_cost = Money::deformatter($api_cost_prices["transfer"]);
$reg_profit = Money::get_discount_amount($register_cost,$profit_rate);
$ren_profit = Money::get_discount_amount($renewal_cost,$profit_rate);
$tra_profit = Money::get_discount_amount($transfer_cost,$profit_rate);
$register_sale = $register_cost + $reg_profit;
$renewal_sale = $renewal_cost + $ren_profit;
$transfer_sale = $transfer_cost + $tra_profit;
$insert = Models::$init->db->insert("tldlist",[
'status' => "inactive",
'cdate' => DateManager::Now(),
'name' => $name,
'paperwork' => $paperwork,
'epp_code' => $epp_code,
'dns_manage' => $dns_manage,
'whois_privacy' => $whois_privacy,
'currency' => $tld_cid,
'register_cost' => $register_cost,
'renewal_cost' => $renewal_cost,
'transfer_cost' => $transfer_cost,
'module' => $module,
]);
if($insert){
$tld_id = Models::$init->db->lastID();
Models::$init->db->insert("prices",[
'owner' => "tld",
'owner_id' => $tld_id,
'type' => 'register',
'amount' => $register_sale,
'cid' => $tld_cid,
]);
Models::$init->db->insert("prices",[
'owner' => "tld",
'owner_id' => $tld_id,
'type' => 'renewal',
'amount' => $renewal_sale,
'cid' => $tld_cid,
]);
Models::$init->db->insert("prices",[
'owner' => "tld",
'owner_id' => $tld_id,
'type' => 'transfer',
'amount' => $transfer_sale,
'cid' => $tld_cid,
]);
}
}
}
return true;
}