Jump to content


Level 2 Member
  • Content count

  • Joined

  • Last visited

  • Days Won


Everything posted by Kian

  1. Reinventing the wheel. Create my_clients table to store client details (firstname, lastname, companyname, email, state, country, customfields...) Develop a new page from which you can add, edit, delete clients stored in my_clients and start issuing invoices Create my_refids table to store reference numbers to JOIN customers and invoices Begin by selecting the customer you want to invoice (e.g. #5 - Silvio Berlusconi) Create the invoice interacting directly with database. INSERT INTO tblinvoices a lot of stuff using 0 (zero) as UserID since it cannot be NULL and store lastInsertId() in $invoiceid variable Repeat the same process to populate tblinvoiceitems based on tblinvoiceitems.invoiceid = $invoiceid (let's suppose that $invoiceid is equal to #1250) INSERT INTO my_refids (invoiceid, clientid) VALUES (1250, 5) require '/vendor/phpmailer/phpmailer/PHPMailerAutoload.php' new \PHPMailer SELECT subject, message FROM tblemailtemplates WHERE name = "Invoice Created" LIMIT 1. We need it to rebuild the Invoice Created email of WHMCS (multi-language requires more efforts) All Smarty variables ({$client_name}, {$invoice_num}, {$invoice_link}...) must be replaced with the effective values using additional queries and several str_replace Send it to the email address of #5 Silvio Berlusconi I stop here. There are tens of other steps to consider but it's doable. I know that it seems messy and frustrating but nothing is impossible. You should ask yourself if it's worth it. Probably not 🤮
  2. Kian

    Disable Tax Field for Contacts

    It should be perfectly fine. As far as I know that field isn't used for billing purposes. I think that it's used to register specific TLDs for sub-accounts. For example .it domains require Tax ID and this new field could be used in place of an additional domain field.
  3. You should provide more details. I tend to say that it's doable. As last resource you could use PHP stream (ob_start, ob_get_content) or auto prepend/append but don't do it, it sucks on so many levels and could break 3rd party modules.
  4. Kian

    WHMCS Advice

    I'm biased, but I always discourage people from using Wordpress or any other CMS as front-end. Maintaining WHMCS up-to-date, fresh and secure is a time consuming activity and it's also expensive. Using an additional software increases the amount of problems, waste your time and money. First off you need to integrate both software so that they look exactly the same. For me this is a complete waste of time. I mean, you are forced to recreate your template in two "languages" and you should also make sure that customers can login from both systems and share sessions. What about being forced to rely on two separate interfaces for the rest of your life? Nah, I pass. I already wasted 8 years babysitting two or more systems. WHMCS has the vast majority of features I use and need and in the end I preferred to add missing pieces.
  5. Kian

    IonCube Encoder optimum settings

    You have to look at your error_log to see what's the problem. If it doesn't work because of «This file was encoded with ionCube... and can't work on this version...» etc. then you're using the wrong encoding. Maybe you encoded your software with ionCube 7.2 but your server runs 5.6. That said you have to option: Use the right encoding Use Bundle encoding like WHMCS does but it sucks because it produces bigger files and scripts run slightly slower
  6. Kian

    how to upgrade client package?

    First off create the Product/Service of your software and configure Module tab to use Licensing module of WHMCS. Then move to Setup > Products/Services > Product Addons and create your three tiers. Make sure to select the main product from Applicable Products tab. Now when your customers order the software they will see something like follows. Now I can't remember if the licensing script already transmits information about Addons assigned to the main Product/Service. Just in case use the LicensingAddonVerify action hook. <?php use WHMCS\Database\Capsule; function prefix_LicensingAddonVerify($vars) { // Retreive the ID of the Addon purchased by customer (if Active) $AddonID = Capsule::table('tblhostingaddons')->where(['hostingid', '=', $vars['serviceid']], ['status', '=', 'Active'])->first(['addonid'])->addonid; // On every check_license() the value of AddonID will be transmitted to licensing script. Use it to lock/unlock features of your software return [ 'AddonID' => $AddonID ]; } add_hook("LicensingAddonVerify", 1, "prefix_LicensingAddonVerify"); When the remote software of your customer requests a license check to your server, it will provide all the usual details (valid IP, directory, domain...) plus the ID of the purchased Addon (if Active). Now you can implement it in your software to do things like add/remove "Powered by" footer, lock/unlock additional features and stuff like that. Obviously this value (the ID of the purchased Addon) needs to be stored locally somewhere on the server of your customers and hashed so that no one can freely cheat you by manually changing values. You could store it directly in the localkey. Please keep in mind that mine is just an example. You can use an unlimited number of options. For example you could check the weather in Rome and if it's raining customers can't use your software software unless they purchase Premium features.
  7. Kian

    Schema rename column

    I suppose that that class is not included in WHMCS. From my experience there are many missing pieces like for example hasTable... that's why I refuse to use Capsule. I can't rely on such a class that lacks of many crucial methods.
  8. Or use OpenTicket API to open a pre-sales ticket from any page on your Wordpress.
  9. Kian

    Ticket notifications for 2 WHMCS

    Alternatively if the company is still the same, you can stick to one installation of WHMCS and use it with multiple domains, templates and even assign products/services and support departments to each your brands. Of course you'll need 3rd party modules.
  10. Kian

    change the blue color of the WHMCS theme

    Exactly. Before making any change duplicate templates/six directory and rename it as you prefer. Once done set this template as your default and make proceed with changes.
  11. Primo! Dopo anni ci hanno dedicato una sezione. Anche se temo sarà visitata, almeno per i primi tempi, da 3 o 4 gatti, penso che la frequenterò dal momento che già bazzico il forum ed uso WHMCS dal 2008.
  12. Kian

    Custom message on all invoices

    Yes. Manually edit templates/{YOUR_TEMPLATE}/invoicetpl.pdf and add something like follows: $pdf->Ln(5); $pdf->SetFont($pdfFont, '', 8); $pdf->Cell(170, 5, 'Now you can pay us with pizza!', '', '', 'C');
  13. It may sound obvious but this error triggers when init.php file is included/required two or more times. You should provide more information. Are you probably requiring/including init.php file in an action hook or in a {php} tag of Smarty?
  14. Official Announcement: Billing Extension 2.0.0 released - (Changelog) It has been a long time but after several months of development the refactoring of Billing Extension is complete. Billing Extension 2.0.0 is now ready for download. It comes with new architecture, code, style and features. We used the experience acquired in years of development with 68 releases of this module to rethink all the process. Improved Admin Interface Warning System VIES Support Enhanced Renewals Document Customization Online Contract Cookie Bar Monthly & Manual Invoicing Billing Preferences VAT on Credit Refunds Credit Balance Company Profile New Auto-Tags Advanced Late Fees system Discover / Purchase » In Billing Extension there's all our billing experience acquired through years of work with hundreds of customers. You can configure WHMCS in line with regulations and legislations in force reducing the weight of invoices on your time. Discover / Purchase » Let's freeze your invoices Information stored on invoices are fundamental for a correct accounting, for this reason these details shound't change over time. Snapshot for customer data, custom fields, currency and invoice header Admin Panel to modify snapshots Company profile properly applied to each invoice Billing Extension "freezes" the issued invoices' data to avoid billing errors Reducing your Paper-Flow WHMCS generates a large number of invoices. We have decided to optimize this process with OneInvoice and OnePayment. Both allow to issue a maximum of one invoice per month for each customer. With OnePayment you receive a monthly payment from each customer Save up to 18% on transaction fees* 95% reduction on invoices issued and emails sent* Enhanced Renewals for an easier management of renewals Less invoices to record and print * Calculations based on our case study Tailor-made for you! With Billing Extension you can customize invoices, proformas and credit notes individually with no limitations. New Auto-tags to personalize sequential numbering Suppressing unwanted invoices (eg. zero amount, full discount or fully paid by credit) Protect invoices from being edited or deleted For an easier experience all options are manageable from settings page and grouped by categories. Ready for Europea regulations Thanks to Billing Extension WHMCS will be fully in line with the accounting requirements of the European Union. VAT MOSS? VIES? No problem. Automatic verification of VAT ID directly from VIES MOSS report and customized exports on spreadsheets Proper taxation for customers of foreign countries within the EU Support for cookie regulation You can rely on a series of tools handling all aspects automatically. A breath of newness Automate your and your client's rights and obligations in line with your terms of service. You'll find many new dedicated pages to handle your billing needs. Inform customers and request consent for any changes to the contract Review your pending invoices at a glance from the Billing page Set late fees, global or advanced, all from one place The best from WHMCS As you know, WHMCS is a complex and feature-rich system, unfortunately some of its features are only hinted or completely missing. With Billing Extension we have fixed many dysfunctional sides to make the most of all its potential. Ability to create credit notes and unpaid invoices Correct invoicing of credit and overpayments Warning System to detect invoicing issues Our goal is to keep improving both the module and the basic WHMCS features to provide an ideal user experience. Customize your billing All Billing Extension options are applicable globally, on groups or on individual customers. For example, you could use OneInvoice for all customers, OnePayment for a group only, and turn off automatic invoicing for specific customers. Basically, the most specific rule will have priority. Set multi-level rules New filters and options to export to spreadsheets Possibility of inserting an invoice text based on the customer type Katamaze technology Billing Extension includes a number of proprietary technologies that enhance the user experience for both the administrator and visitors. SorTables for displaying data Multilingual content with HereLang Optimal data entry with MagicInput Discover / Purchase » 
  15. Kian

    Disable Tax Field for Contacts

    @stormy I was basing my reasoning on this message. This would have been a billing nightmare. Guy X pays and guy Y to receives the invoice. You're basically letting people to fraud Revenue Agency BUT I tested it myself installing 7.7 and it doesn't happen. Probably @cenourinha misunderstood this part therefore it's fine for me. They can do whatever they want with sub-accounts.
  16. Kian

    Disable Tax Field for Contacts

    I know hundreds of people that asked for this for years but this doesn't change the fact that it's illegal.
  17. Kian

    Disable Tax Field for Contacts

    I agree with @cenourinha It doesn't make any sense. In normal countries where invoicing is a serious matter, it's even illegal. I mean how can you invoice a contact based on the payment received by another person? It is wrong on so many levels that I don't even want to continue.
  18. TL;DR version below. I'm sorry but we're having troubles with tickets due to electronic invoicing. It's a massive change that involves all our italian customers (providers, web agencies and professionals) and more in general 60 million people. The deadline was 1st of January 2019 and it was known from years but today we still have people ignoring that. Not to mention that very few people actually read documentation about electronic invoicing therefore we constantly have to repeat the same things over and over again. Sadly linking documentation doesn't seem to work but if they hear me reading documentation it's perfectly fine 🙄 During the last 50 days we received an average of 60 requests per day. In the same time we released 23 updates. Personally I even had to turn off my phone for like an entire month because people contact me by phone, Skype, Whatsapp, Linkedin, SMS, forums. I also spent christmas holidays coding night and day non-stop. On 31 December at 22 o'clock I was still talking with accounting department of a customer 😀 TL;DR I've answered to your ticket.
  19. During the 18 days we released 8 updates mainly due to italian Electronic Invoicing aka Fatturazione Elettronica. We added support for things like CUP/CIG codes for invoices toward Public Administration, CDATA support for specific XML nodes plus UTF8 encoding for lazy intermediary platforms, lot of improvements to handle credit usage, coupon codes and lines with negative amounts on electronic invoices. We also developed a lot of new methods to validate, sanitize and even guess weird or missing billing information (end-users write silly things like Ltd as Lastname 😩). There are also many new nodes available in XML files that were totally unnecessary but that we've been forced to add just because intermediary platforms love to scare people validating values that are weren't supposed to be validated by Revenue Agency aka Agenzia delle Entrate. They also love to put emphasis on nodes that are not needed. Our initial goal was to generate XML files as small as possible to ease transmissions and save disk space (more MB = more money) but we kind of give up. We'll keep adding all nodes they want even though they're completely useless. Finally we had to waste ehm... sorry 😄 invest a lot of time to add backward compatibility for FontAwesome icons for people who refuse to update WHMCS. We also had to invest time to support Lara Admin and v4 template... Argh... I'll never understand why we're supposed to support things developed by other companies, outdated stuff, weird requirements by intermediary platforms... like if WHMCS wasn't enough. Peace.
  20. Leave license key as it is. There's no point in stacking information in the key. Don't forget that the licensing script is a WebService that POST data to your modules/servers/licensing/verify.php. You can make use of this "communication link" to perform additional checks locally with LicensingAddonVerify action hook and eventually return additional information. For example you can return to your remote scripts things like expiration date, link the invoice for renewals, inject news or even ... well I can't say that or people will go crazy 😝
  21. Kian

    Reaching Out To "Brian!"

    @brian! mentioning him should work 🙂
  22. Kian

    UpdateInvoice - newitemtype

    You can't. Workaround? Soon after UpdateInvoice triggers run a query to update item type manually.
  23. Mercury is a revolution for WHMCS, a feature-rich platform designed to simplify user interaction. You can manage News, Docs, Changelog, Development and much more, in one place, quickly and intuitively. Discover / Purchase » Start spreading the News! Mercury provides you with a News section to communicate with your customers. Everything is perfectly integrated, with as many as 3 widgets available. Thanks to the author profile, signature, role and profile image are customizable by each administrator Scheduled automated publishing tool You will easily manage the creation and publication of news and establish a link with your readers. Documentation A Docs section always available to show your customers the features and the use of products and make learning faster. Each product is a category General categories for articles not concerning specific products Anchor navigation within the articles By providing detailed documentation, you will be able to simplify and streamline ticket support. Your customers will find most of the information they need here. Welcome to the Lab! Lab is a new concept. A meeting point where customers actively participate in product development. Make a request for a Feature or a Bug-fix in a few steps Get and organize customer feedback in a snap Rating system to rate existing features Dedicated widgets available, for a perfect integration Now you can focus on important things. Thanks to the ranking algorithm you will immediately know which features are most interesting for your users. A small revolution in your development model. Changelog? Done With Mercury comes one more big news. You can show everyone the evolution of your projects and inform customers about changes in your releases. Each release will have an associated changelog Real-time changelog creation interface Ability to add images to the changelog Intuitive and accessible frontend template, with dedicated widget Finally the changelog is gonna be quick to write and very easy to browse. Your control center Given the large number of features, you need a place to keep everything under control. The Dashboard is designed for this, Mercury at a glance. For each section, display what require your attention Add and organize notes on the fly directly in the to-do list The Dashboard is your starting point, an overview of what's going on and a quick access point for all of the Mercury sections. SEO Mercury automatically manages URL rewriting for News, Documentation, Lab and Changelogs to consolidate your presence on the web. Locale specific Friendly URL Safe from duplicate content Proper use of canonical URL We took care of everything even of the maleficent Black Hat SEO techniques implementing features that automatically detects and nullify these activities. Katamaze technology Mercury includes a number of proprietary technologies that enhance the user experience for both the administrator and visitors. SorTables for displaying data Multilingual content with HereLang Optimal data entry with MagicInput Discover / Purchase » Screenshots - Click to expand Discover / Purchase »
  24. For sure it's doable with a standalone script that scans for KB and Announcements of WHMCS, rebuilds the URL based on your SEO settings and puts everything in sitemap.xml. Custom pages probably should be added manually since most of the time they're rewritten in .htaccess. Problem is I have no time in this precise moment but this is in my to-do list.

Important Information

By using this site, you agree to our Terms of Use & Guidelines