Jump to content


  • Content count

  • Joined

  • Last visited

  • Days Won


Kian last won the day on January 23

Kian had the most liked content!

Community Reputation

189 Excellent

About Kian

  • Rank
    Senior Member

Recent Profile Visitors

7,360 profile views
  1. I'd use PreRegistrarRegisterDomain hook point (and its equivalent for transfers) to abort the action based on a query that verifies if the given client or group is allowed to use automatic registration / transfer.
  2. Kian

    WHMCS Updated - Receiving cron error

    It means that your cron is still running with PHP 5.6 no matter what you changed earlier. It's a server-side problem/misconfiguration.
  3. Kian

    WHMCS Updated - Receiving cron error

    Your "Easy_WHMCS" addon has been encoded with PHP 7.2 support hence you have two options: Contact the developer of "Easy_WHMCS" and ask him to provide the "bundled" version that works with any version of PHP (don't do that, it's not his fault) Make sure that your server uses PHP 7.2 for EVERYHING. The problem here is that the local PHP that runs your WHMCS uses v7.2 but cron job is still using v5.6.40. In other words you need to fix your server
  4. Preview: Code: use WHMCS\Database\Capsule; add_hook('AdminAreaHeaderOutput', 1, function($vars) { if ($vars['filename'] == 'invoices' AND $_GET['id']) { $Data = Capsule::select(Capsule::raw('SELECT id, type, relid FROM tblinvoiceitems WHERE invoiceid = "' . $_GET['id'] . '"')); $Data = json_encode($Data, true); $output .= <<<HTML <script type="text/javascript"> $(document).ready(function(){ var rel = {$Data}; var rows = $('.datatable td > input[name^="itemids"]').first().closest('tbody').children('tr'); $.each(rows, function(i,e){ $(e).children('*').last().clone().html('').insertBefore($(e).children('*').last()); }) rows.first().children('th').eq(-2).text('Meoooow!'); $.each(rel, function(i,e){ if (e.type == 'Hosting') { var url = 'clientsservices.php?id=' + e.relid; var faicon = 'fa-server'; } else if (e.type.includes('DomainRegister', 'DomainTransfer', 'Domain')) { var url = 'clientsdomains.php?id=' + e.relid; var faicon = 'fa-globe'; } if (url) { $('input[name^="itemids"][value="'+ e.id +'"]').closest('tr').children('*').eq(-2).html('<a href="'+ url +'" target="_blank"><i class="fas '+ faicon +'"></i></a>'); } else { $('input[name^="itemids"][value="'+ e.id +'"]').closest('tr').children('*').eq(-2).html('<img src="https://katamaze.com/templates/kata/img/stuff/nyan-cat.png" style="height: 27px;width: 100px;">'); } }) }) </script> HTML; return $output; } }); For domains there's the "globe" icon and for hosting accounts "server" one. You can do the same for coupons, late fees, upgrades etc.
  5. Kian

    Forward page to another

    Bah... I don't get why I keep over complicating things. It's like when I bought an expensive switch because bandwidth was stuck at 100Mbps... I was using a Cat5 cable 😑 now my mom has a gigabit managed fiber switch 😕
  6. Kian

    Cloud storage for individual client files

    It was 8 years ago when my PHP skills were abominable. If it's my code for sure it contains at least 3 bugs and a malware per line and should be taken down from Marketplace 🤗
  7. If it's a custom item, what's the point of specifying a relid? Anyway just don't do that. WHMCS uses tblinvoiceitems.relid and tblinvoiceitems.type to run automations. For example Type -> DomainRegister & Relid -> 100 will register domain with ID 100. Type -> Hosting & Relid -> 100 will renew hosting package with ID 100... I lost the count of how many "types" WHMCS uses (late fees, domain, domain renewal, addons, billing items, configurable options...).
  8. Kian


    But... If they're Inactive they're not Closed.
  9. You need to update Invoices retroactively by adjusting rates (Option tab from invoice view).
  10. Kian

    Forward page to another

    Action hook. <?php add_hook('ClientAreaPageContact', 1, function($vars) { header('Location: submitticket.php'); die(); });
  11. Kian

    Forward page to another

    Use the following .htaccess rule. Redirect 301 "/contact.php" "/submitticket.php"
  12. Kian


    Use TCAdmin. It has a WHMCS module and all features needed to run a GSP (Game Service Provider).
  13. Kian

    Cloud storage for individual client files

    About 8 years ago in a couple of hours I managed to code a WHMCS script that allowed me to "read" and upload files from my Dropbox account. I used it to backup a bunch of sql files on a daily basis hence it's 100% possible.
  14. We're now at version 2.2.108 and here's the recap of what happened during the latest 19 releases. Before we start I want to say that this year there will be no further integrations with accounting softwares and most importantly no electronic invoicing for The Netherlands in WHMCS therefore please stop asking me. Same goes for electronic invoicing of any other country. Enough is enough. Now let's start with the recap: All actions performed by Administrators on electronic invoices are now logged with username & IP since I was tired of things like: Customer: "Why did you delete the invoice on my WHMCS?" Me: "I didn't" Customer: "Prove me" Me: "I have no access to your WHMCS and I got better things to do in my life than deleting invoices on other systems" Customer: "I don't belive you" Me: "The log says that at 12:50 an administrator with your username and your IP address deleted the invoice you are referring to" Customer: "Ok, thanks" Me: "No problem, thanks for wasting 2 hours of my time" Customizable normative references for italian electronic invoices. This feature was unnecessary but I was tired of having arguments with some crazy accountants. At the end of the day I was right but who cares? Wasting time is the mission of our company We worked 2 weeks trying to overcome a bug of WHMCS (this one). As always most of customers think that it's our fault but taking the blame for someone else is our priority Fallbacks for WHMCS v7.8, v7.9, a dozen of templates and some Intermediary Platforms. Love how I am forced to adapt to other softwares, platforms and WHMCS itself but nobody cares about me. I hate you all 💗 The integration with Facebook Pixel now tracks additional events that make absolutely no sense but people love to track for the sake of tracking It is possible to turn on/off the issuing of electronic invoices for specific invoices and customers. Why? I have no idea but many customers asked for this feature but till now no one ever used it The status of electronic invoices can be updated on the fly from invoice view but nobody knows it and they keep opening tickets to request our intervention New options to handle electronic invoices in bulk but nobody knows it and they keep opening tickets to request our intervention New type of textarea for MagicInput but nobody knows what is MagicInput New auto-tags to have random letters and numbers in invoice numbering so that customers can pretend to be an huge corporation. Sequential numbers 1, 2, 3 (...) are for kids The module supports Header and footer for PDF invoices Australian Toolkit to issue credit notes in line with Australian taxation system (withholding, GST...) with integrated ABN Lookup to verify VAT numbers When an invoice is suppressed BX sends a notification to administrator (that nobody reads). Having a dedicated interface in both back-end and front-end plus notification to end-user wasn't enough Integration with Minimax for Slovene electronic invoicing but for unknown reasons Minimax sets them as Draft hence they need to be published manually Snippet to display bank details on invoice PDF when the invoice is still Unpaid and "bank transfer" has been selected as payment method (preview)

Important Information

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