Jump to content

steven99

Valued Contributor
  • Content Count

    552
  • Joined

  • Last visited

  • Days Won

    13

steven99 last won the day on July 11 2019

steven99 had the most liked content!

Community Reputation

62 Excellent

4 Followers

About steven99

  • Rank
    Level 2 Member

Recent Profile Visitors

The recent visitors block is disabled and is not being shown to other users.

  1. I removed the target of the payment form, which stopped it from doing a post: $("#payment-form").removeAttr('target'); Have not upgraded module yet for 7.9 and so could be different now.
  2. Not quite sure I follow you here. If they are different orders, then the 1000 tagged to Bob White should stay as that and the next order for contact Bob Black should be set to that and not the total 1500 . . At any rate, it sounds like your own registrar module is in order to get the functionality that you and @RobertOCC want. Or one option would be to use PreRegistrarSaveContactDetails, check if a session variable is set and if not, set it and then run DomainUpdateWhoisInfo API with the info you want, and then return array('abortWithSuccess'=>true). It will run that PreRegistrarSaveContactDetails hook again and with the checking of the session variable there, it wont go in to a infinite loop. And in this second hook firing, you have no return. Have not tested it though but should work.
  3. You can get the option within the client area with a custom addon and form on the manage credit card page that submits to the addon to toggle the setting and the addon then redirects back to the manage card page. You could also skip the addon and use a hook that watches for $_POST with specific variables and use that same form to post to clientarea.php?action=creditcard . That method may conflict with WHMCS handling of the form submission and would require testing.
  4. Yes by using the php smarty tag and enabling php tags in the configuration, however, it is not advised.
  5. To save the info, you would use the first mentioned code with the function. Below is an updated version of that function with the api to save. function carros7_CreateAccount($params) { if ($params["server"] == 1) { $Chave = md5($params['configoptions']["chave"]); $postvars = array( 'key' => $params["serveraccesshash"], 'action' => 'adicionar', 'nomeCompleto' => $params['clientsdetails']['firstname'].$params['clientsdetails']['lastname'], // Get full name {Still does not work} 'email' => $params["clientsdetails"]["email"], 'usuario' => ((isset($params["username"]) and !empty($params["username"])) ? $params["username"] : $params['clientsdetails']['firstname'].$params['clientsdetails']['lastname']), 'senha' => $params["password"], 'Chave' => $Chave, 'matrizFiliais' => $params["configoption1"], 'veiculos' => $params["configoption2"], 'funcionarios' => $params["configoption3"] ); $postdata = http_build_query($postvars); $curl = curl_init(); curl_setopt($curl, CURLOPT_URL, 'https://' . $params["serverhostname"] . 'whmcs/criar.php'); curl_setopt($curl, CURLOPT_RETURNTRANSFER,true); curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false); curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false); curl_setopt($curl, CURLOPT_POST, true); curl_setopt($curl, CURLOPT_POSTFIELDS, $postdata); $answer = curl_exec($curl); logModuleCall('carroswhmcs','CreateAccount_UserAccount','https://' . $params["serverhostname"] . 'whmcs/criar.php?'.$postdata,$answer); if (strpos($answer,"OK")!==false) { $result='success'; $CustomFields = base64_encode( serialize( array('Chave' => $Chave ) ); $AccountIDadd = localAPI('updateclientproduct', array("username"=>$params["username"],'serviceid'=>$params['serviceid'],'customfields' => $CustomFields)); if ($AccountIDadd) return $result; } else { $result=json_decode($answer,true); $result=$result['msj']; } return $result; } return "unknown error"; }
  6. function carros7_CreateAccount($params) { if ($params["server"] == 1) { $postvars = array( 'key' => $params["serveraccesshash"], 'action' => 'adicionar', 'nomeCompleto' => $params['clientsdetails']['firstname'].$params['clientsdetails']['lastname'], // Get full name {Still does not work} 'email' => $params["clientsdetails"]["email"], 'usuario' => (isset($params["username"]) and !empty($params["username"]) ? $params["username"] : $params['clientsdetails']['firstname'].$params['clientsdetails']['lastname']), 'senha' => $params["password"], 'Chave' => md5($params['configoptions']["chave"]), 'matrizFiliais' => $params["configoption1"], 'veiculos' => $params["configoption2"], 'funcionarios' => $params["configoption3"] ); $postdata = http_build_query($postvars); $curl = curl_init(); curl_setopt($curl, CURLOPT_URL, 'https://' . $params["serverhostname"] . 'whmcs/criar.php'); curl_setopt($curl, CURLOPT_RETURNTRANSFER,true); curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false); curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false); curl_setopt($curl, CURLOPT_POST, true); curl_setopt($curl, CURLOPT_POSTFIELDS, $postdata); $answer = curl_exec($curl); logModuleCall('carroswhmcs','CreateAccount_UserAccount','https://' . $params["serverhostname"] . 'whmcs/criar.php?'.$postdata,$answer); } if(strpos($answer,"OK")!==false){$result='success';}else{$result=json_decode($answer,true); $result=$result['msj'];} return $result; }
  7. You would use that within the _CreateAccount function of the provisioning module you're developing, in this case in the carros7.php file. So for example, you complete your backend processes for deploying the car to the renter and then you save the details using that code.
  8. In the provisioning module's create function, update the service details with the username you want to use. You can also use a hook to do this before the order is accepted. As for the custom field, you would save the custom field with API with for example the following. $CustomFields = base64_encode( serialize( array('CHAVE' => md5('example.') ) ); $AccountIDadd = localAPI('updateclientproduct', array("username"=>$User,"password"=>$UserPass,'serviceid'=>$params['serviceid'],'customfields' => $CustomFields)); You can also use that for the first item mentioned.
  9. Setup the ticket department to pull mail from a pop3 mailbox and have "Pipe Replies Only" disabled in the department settings. Any reply that includes the ticket number in the subject should then be routed through and added to the existing ticket.
  10. Correct, any credit on the account would be applied on the due date of the invoice just before it tries to charge the card. This will be indicated in the invoice as a credit line item in the balances and within the admin as "Credit card + partial credit" or "fully paid with credit" depending on which outcome the credit made.
  11. See the CMSE Content Framework module that @brian! mentioned. There are other modules that do the same thing also but some have been abandoned. WHMCS is primarily a billing and deployment system and not content management or primary site system but with modules or using custom pages it can be both. Not sure what a video would explain more than already mentioned...?
  12. All (most) developer info is at https://developers.whmcs.com/ including API calls .
  13. You need to encase javascript with {literal} tags as smarty uses curly brackets for its use. As for the confirmation page, more information is needed on how you put it in there? via hook, template change, etc.
  14. If you are able to do manual capture via the invoice page, then you do not need the client to do anything. And if you are able to capture, then it should be automatically doing so. Check the billing menu -> gatway log for any errors during the daily batch. If it doesn't work, check your automation settings, including crons.
  15. IIRC ICANN only requires the real data to be stored and available upon their request as well as the email address to be working. So the example above would maintain that holding of info as it would be required for the forwarding. However, it has been a while since I looked at those rules and so could require other items.
×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use & Guidelines and understand your posts will initially be pre-moderated