WHMCS 7 premium domain özelliği

Eğer WHMCS 7 güncellemesini yaptıysanız ve premium özelliğini aktif etmek istiyorsanız bu sayfadaki bilgiler işinize yarayacaktır. Premium domain özelliğini aktif etmeniz; ödeme yapmış ama domaini alamamış olan sinirli müşteriye o domainin aslında fiyatı şuydu ve özel bir domaindir açıklaması yapmanızın önüne geçecektir. Panelden özelliği aktif etmeniz için varsayılan lookup servisini “ResellerClub” ile değiştirmeniz gerekiyor.

Değiştirdiniz ve olmadı mı? Bunun sebebi büyük ihtimalle modules/registrars/dottk klasöründe ki dottk.php IonCube uyumsuz bir versiyonu ile şifrelendiği için sorun yaratıyor, klasöre giderek silin.

$.post('cart.php', {
	dataType: 'json',
	domain: domainName,
	token: $("input[name='token']").val(),
	'a' : 'checkDomain',
	'type' : 'domain'
}, function(response) {
	var domain_adi = response.result[0]['domainName'];
	
	if(response.result[0]['isPremium'])
	{
		$('.sorgulanan-sag h3').html(domain_adi + ' 
<div class="badge badge-warning">Premium</div>

');
	}else{
		$('.sorgulanan-sag h3').html(domain_adi);
	}
	
	if(response.result[0].tld.substr(response.result[0].tld.length - 2) == 'tr')
	{
		var dadi = response.result[0]['domainName'];
		$.ajax({
			url: "nic-whois.php",
			method : 'POST',
			dataType: 'json',
			data : { domain : dadi},
			success : function(cevap)
				{

Şimdi bu işlemi yaptığınız da karşınıza başka bir sorun çıkıyor, ResellerClub “tr” uzantılarını false döndürüyor. (com.tr, av.tr, biz.tr vbg.) Her halükarda müşteriye bu alan adları satın alınmış olarak gözükecektir. Bunu önlemek için aklıma gelen ilk yöntem sisteme hook atmak olduysa da dökümantasyonu okumak eziyet geldi onun yerine nic.tr’ye bir sorgu yapıp tld eğer tr uzantılı ise isRegister değerini nic.tr’den gelen cevaba göre güncelledim.

Daha iyi bir çözüm bulana kadar kısaca izlemeniz gereken yol :
Bizim üzerinde uğraştığımız WHMCS sistemde post JQuery ile yapılıyor ve spotlight domain özelliğini kullanıyoruz. Ve seçmiş olduğumuz spotlight tld uzantıları arasında com.tr, biz.tr de var.

WHMCS cart.php’den normal bir şekilde sorgulamamızı yapıyoruz tabi ki premium özelliği aktif olduğu için ResellerClub’dan cevap geliyor. Ve eğer domain uzantısı tr ise ikinci bir istek gönderiyoruz nic-whois.php’ye ve gelen cevaba göre domainin kayıtlı olup olmadığını müşteriye gösteriyoruz.

nic-whois.php

<?
function whois($whoisserver, $domain) {
	$port = 43;
	$timeout = 10;
	$fp = @fsockopen($whoisserver, $port, $errno, $errstr, $timeout) or die("Socket Error " . $errno . " - " . $errstr);
	fputs($fp, $domain . "\r\n");
	$out = "";
	while(!feof($fp)){
		$out .= fgets($fp);
	}
	fclose($fp);
	
	return $out;
}
if (!empty($_POST))
{	
	//$_POST['domain'] için filtrleme yapılabilir
	$sorgu = whois("whois.nic.tr",$_POST['domain']);
	if(!$sorgu) {
		return false;
		echo "Sorgu hatası.";
	}
	else {
		if(substr($sorgu,0,2) == "No")
		{	//domain boş
			$sonuc = false;
		}
		else{
			$sonuc = true;
		}
	}
	
	echo json_encode($sonuc);
}


?>