Linking to WHMCS
Linking to your WHMCS system, be it a login link for the client area, a shortcut to a ticket submission form or an order form purchase link, is probably one of the first things you'll want to do. And it's both very easy, and very flexible with WHMCS. In this article we demonstrate some of the common links & techniques you might want to make use of.
For integrating a domain availability check, login form or domain purchase link, please refer to Utilities > Integration Code within your WHMCS admin area for "copy & paste" ready code. You may also want to refer to the Data Feeds functionality.
Contents
Order Links
You can obtain direct order links for products from the product configuration screen under Setup > Products/Services > Products/Services > Edit > Links tab. A direct order link takes the user straight into step two of the order process with the product or service preselected. This is used for order links on your site for specific products. The link looks something like this:
http://demo.whmcs.com/cart.php?a=add&pid=1
To link to the order process with a given product and annual billing cycle preselected, you can use a link like this:
http://demo.whmcs.com/cart.php?a=add&pid=1&billingcycle=annually
To link to the order process with a domain preselected, you can use a link like this:
http://demo.whmcs.com/cart.php?sld=google&tld=.com
To link to the order process with a subdomain preselected, you can use a link like this:
http://demo.whmcs.com/cart.php?domainoption=subdomain&sld=google
To automatically apply a promotion code to the order, you can append &promocode=xxxx to any of the cart links, but on it's own the link would look like this:
http://demo.whmcs.com/cart.php?promocode=xxxxxxx
You can also link directly to an individual product group like this where the gid is the ID of the group to show:
http://demo.whmcs.com/cart.php?gid=1
To link to the cart and specify a specific order form template to use, the link would be like this where boxes is the template to display:
http://demo.whmcs.com/cart.php?carttpl=boxes
To link to a Product Bundle where bid is the ID of the bundle use:
http://www.yourdomain.com/whmcs/cart.php?a=add&bid=X
Configurable Options & Custom Fields
There are many further options you can use, such as your own configurable options. The simplest way of formulating a url is to step through the order process as normal to the product configuration step, then right click > view source and get the field names and value IDS. These can then be used in your direct link URLs.
For example:
<p class="cartsubheading">Configurable Options</p> <p>This product/service has some options which you can choose from below to customise your order.</p> <div class="cartbox"> <table cellspacing="0" cellpadding="0"> <tr><td>Disk Space:</td><td width="5"></td><td> <input type="text" name="configoption[1]" value="100" size="5"> x 1MB $0.00USD </td></tr> </table> </div>
You would then use the URL:
http://demo.whmcs.com/cart.php?a=add&pid=1&configoption[1]=100
This would set the value of the first configurable option to 100.
Custom fields are almost exactly the same, the following would pre-fill the first custom field option with the value "Friday":
http://demo.whmcs.com/cart.php?a=add&pid=5&customfield[1]=Friday
It's possible to skip the configuration page entirely provided you have defined all the configurable option values in the URL by adding &skipconfig=1 to your order URL. If there is any configuration missing, then this would generate an error and force the client to edit the configuration. eg:
http://demo.whmcs.com/cart.php?a=add&pid=5&customfield[1]=Friday&skipconfig=1
Setting the Language/Template via the URL
You can set the language or template to be displayed to the user with the link you use to WHMCS. Here are some examples:
http://demo.whmcs.com/index.php?systpl=portal http://demo.whmcs.com/index.php?language=Spanish http://demo.whmcs.com/index.php?systpl=portal&language=Spanish http://demo.whmcs.com/cart.php?systpl=portal&language=English&gid=1 http://demo.whmcs.com/cart.php?systpl=portal&language=Spanish&a=add&pid=1
These can be combined, used on any page and used with the direct order links
Specifying Currency in a link
You can link to the order form pre-selecting a specific currency (and optionally also a language) using an url format as follows:
http://demo.whmcs.com/index.php?cart.php?currency=1 http://demo.whmcs.com/index.php?cart.php?currency=2&language=Spanish
Support Ticket Links
You can link to the create ticket page with a number of predefined settings. All of which are interchangeable:
To define the ticket subject, use a link like this:
http://demo.whmcs.com/submitticket.php?step=2&deptid=1&subject=Subject%20goes%20here...
You can also go even further and define a name and email address too if you want:
http://demo.whmcs.com/submitticket.php?step=2&deptid=1&name=Jeff&email=jeff@example.com
Integrating The Login Form into your Website
Please refer to Utilities > Integration Code within your WHMCS admin area for "copy & paste" ready code for adding a clients login form to any page of your site.
Integration a Domain Availability Check into your Website
Please refer to Utilities > Integration Code within your WHMCS admin area for "copy & paste" ready code for adding a domain lookup form to any page of your site.
Displaying Announcements on your Site
You can display the announcements on any page of your site using the code below. This will display the latest 3 announcements set to published status.
<?php include("support/dbconnect.php"); include("support/includes/functions.php"); $query = "SELECT * FROM tblannouncements WHERE published='on' ORDER BY date DESC LIMIT 0,3"; $result = mysql_query($query); while ($data = mysql_fetch_array($result)) { $id = $data["id"]; $date = $data["date"]; $title = $data["title"]; $announcement = $data["announcement"]; $date = fromMySQLDate($date); echo '<p><font color="#cccccc">'.$date.'</font> - <b>'.$title.'</b><br />'.$announcement.'</p>'; } ?>
You should replace the word support in the first two lines where it includes files from the WHMCS folder with the path to your WHMCS directory.