Skip to content

Commit

Permalink
Merge pull request #4 from VladCleantalk/master
Browse files Browse the repository at this point in the history
fixed license extension
  • Loading branch information
CleanTalk committed Jan 27, 2016
2 parents dd79bc8 + 8764522 commit 969474e
Showing 1 changed file with 68 additions and 20 deletions.
88 changes: 68 additions & 20 deletions cleantalk/hooks.php
Original file line number Diff line number Diff line change
Expand Up @@ -16,18 +16,24 @@

require_once(dirname(__FILE__)."/JSON.php");
require_once(dirname(__FILE__)."/cleantalk.class.php");
define("CLEANTALK_LOG", false);
define("CLEANTALK_LOG", true);

function cleantalk_addlog($message)
{
if(CLEANTALK_LOG)
{
$command = "logactivity";
$adminuser = "admin";
$values["description"] = $message;
$results = localAPI($command,$values,$adminuser);
$results = localAPI($command,$values,cleantalk_getadmin());
}
}

function cleantalk_getadmin()
{
$query=full_query("SELECT username from tbladmins limit 1;");
$row=mysql_fetch_array($query);
return($row['username']);
}

function send_request($url,$data,$isJSON)
{
Expand Down Expand Up @@ -77,14 +83,22 @@ function send_request($url,$data,$isJSON)

function cleantalk_hook_order($vars)
{
$ct_dates=Array();
$ct_dates['Monthly']=1;
$ct_dates['Quarterly']=3;
$ct_dates['Semi-Annually']=6;
$ct_dates['Annually']=12;
$ct_dates['Biennially']=24;
$ct_dates['Triennially']=36;
cleantalk_addlog("Hooked order activation");

$command = "getorders";
$values=Array();
$values["id"] = $vars['orderid'];
$values["responsetype"] = "json";
$result = localAPI($command,$values);
$result = localAPI($command,$values, cleantalk_getadmin());
cleantalk_addlog("Called GetOrders");
cleantalk_addlog("Result:".print_r($result,true));

if($result['result']=='success')
{
Expand All @@ -93,17 +107,24 @@ function cleantalk_hook_order($vars)
$items=$result['orders']['order'][0]['lineitems']['lineitem'];
$is_cleantalk=false;
$domain='';
$cycle='';
$renew=12;
for($i=0;$i<sizeof($items);$i++)
{
if($items[$i]['type']=='product'&&@trim($items[$i]['domain'])!='')
{
$domain=$items[$i]['domain'];
$cycle=$items[$i]['billingcycle'];
}
if($items[$i]['type']=='addon'&&@strpos($items[$i]['product'],'CleanTalk')!==false)//&&$items[$i]['status']=='Active'
{
$is_cleantalk=true;
}
}
if(isset($ct_dates[$cycle]))
{
$renew=$ct_dates[$cycle];
}
if($is_cleantalk)
{
cleantalk_addlog("CleanTalk added to order");
Expand All @@ -128,9 +149,10 @@ function cleantalk_hook_order($vars)
$values["clientid"] = $userid;
$values["stats"] = true;
$values["responsetype"] = "json";
$uresult = localAPI($command,$values);
$uresult = localAPI($command,$values,cleantalk_getadmin());
//addlog("uresult:\n".print_r($uresult,true)."\n\n");
cleantalk_addlog("Called GetClientsDetails");
cleantalk_addlog("Result:".print_r($uresult,true));
if($uresult['result']=='success')
{
cleantalk_addlog("API call success");
Expand All @@ -149,7 +171,7 @@ function cleantalk_hook_order($vars)
$data['website'] = $domain;
$data['platform'] = 'whmcs';
$data['hoster_api_key'] = $cfg['value'];
$data['locale'] = 'en-US';
$data['locale'] = $_LANG['isocode']."_".strtoupper($_LANG['isocode']);
$auth=send_request($url,$data,false);
cleantalk_addlog("Sending request to CleanTalk servers");
if($auth!==null)
Expand All @@ -158,25 +180,48 @@ function cleantalk_hook_order($vars)
if(isset($auth->data)&&isset($auth->data->auth_key))
{
$command = "logactivity";
$adminuser = "admin";
$values["description"] = "CleanTalk account $email succesfully created";
$results = localAPI($command,$values,$adminuser);
$results = localAPI($command,$values,cleantalk_getadmin());

$url = 'https://api.cleantalk.org';
$data = array();
$data['method_name'] = 'extend_license';
$data['email'] = $email;
$data['platform'] = 'whmcs';
$data['billing_cycle'] = 'month';
$data['period'] = $renew;
$data['hoster_api_key'] = $cfg['value'];
$auth=send_request($url,$data,false);
if($auth!==null)
{
$auth=json_decode($auth);
if(isset($auth->data)&&isset($auth->data->extended))
{
cleantalk_addlog("CleanTalk account $email extended till ".$auth->data->extended);
}
else if(isset($auth->error_no))
{
cleantalk_addlog("Failed to extend CleanTalk account: ".$auth->error_message);
}
}
else
{
cleantalk_addlog("Failed to extend CleanTalk account!");
}
}
else if(isset($auth->error_no))
{
$command = "logactivity";
$adminuser = "admin";
$values["description"] = "Failed to create CleanTalk account: ".$auth->error_message;
$results = localAPI($command,$values,$adminuser);
$results = localAPI($command,$values,cleantalk_getadmin());
}
}
}
else
{
$command = "logactivity";
$adminuser = "admin";
$values["description"] = "Failed to create CleanTalk account: please enter Hoster API key";
$results = localAPI($command,$values,$adminuser);
$results = localAPI($command,$values,cleantalk_getadmin());
}
}
}
Expand All @@ -190,13 +235,16 @@ function cleantalk_hook_order($vars)

function cleantalk_hook_invoice_paid($invoiceid)
{
/*cleantalk_addlog("Hooked invoice paid! Invoice info: ".print_r($invoiceid,true));
$command = "getinvoice";
$values=Array();
$values["responsetype"] = "json";
$values["invoiceid"] = $invoiceid;
$values["invoiceid"] = $invoiceid['invoiceid'];
$invoice_results = localAPI($command,$values);
$invoice_results = localAPI($command,$values,cleantalk_getadmin());
cleantalk_addlog("Called GetInvoice");
cleantalk_addlog("Result:".print_r($invoice_results,true));
$userid=$invoice_results['userid'];
Expand All @@ -205,7 +253,9 @@ function cleantalk_hook_invoice_paid($invoiceid)
$values["clientid"] = $userid;
$values["stats"] = true;
$values["responsetype"] = "json";
$uresult = localAPI($command,$values);
$uresult = localAPI($command,$values,cleantalk_getadmin());
cleantalk_addlog("Called GetClientsDetails");
cleantalk_addlog("Result:".print_r($uresult,true));
$email=$uresult['client']['email'];
Expand Down Expand Up @@ -239,18 +289,16 @@ function cleantalk_hook_invoice_paid($invoiceid)
if(isset($auth->data)&&isset($auth->data->extended))
{
$command = "logactivity";
$adminuser = "admin";
$values["description"] = "CleanTalk account $email succesfully extended till ".$auth->data->extended;
$results = localAPI($command,$values,$adminuser);
$results = localAPI($command,$values,cleantalk_getadmin());
}
else if(isset($auth->error_no))
{
$command = "logactivity";
$adminuser = "admin";
$values["description"] = "Failed to extend CleanTalk account: ".$auth->error_message;
$results = localAPI($command,$values,$adminuser);
$results = localAPI($command,$values,cleantalk_getadmin());
}
}
}*/

}

Expand Down

0 comments on commit 969474e

Please sign in to comment.