theWebalyst
Retired Forum Member-
Posts
22 -
Joined
-
Last visited
Content Type
Profiles
Forums
Events
Hotfixes
Everything posted by theWebalyst
-
Correct procedure for moving a service from annual to monthly
theWebalyst replied to brooks's question in Pre-Sales Questions
I was just trying this but it doesn't work. How can one do this for the situation where a client was on monthly billing, did not pay their invoice in the due period (so invoice is overdue), and wants to be moved to monthly billing? I want them to be billed from the date the original payment was due, but monthly rather than annually. Thanks, Mark -
I take this back, was in too much of a hurry to correct my post! Actually, Blend is more usable on 1024x768 but still bloody awful on my CRT I have to say. The fonts are eye strainingly small so how about something that works on 1024x768. And what about the poor folks with 800x600? Or a smartphone? Mark
-
Ok, [apologetic tone] I found the admin templates and have selected 'Blend' which works great on 1024x768. However, there are two UI issues still: 1) This is not obvious to anyone upgrading (or installing), so how is someone supposed discover they can fit WHMCS on a 1024x768 screen 2) Setting it per user is ridiculous. Its the device not who is logged in that matters. Selection should be part of the main UI, always visible and preserved using a cookie. Not buried within the admin users settings! Mark
-
Having waited for the dust to settle and early bugs to be swatted I updated from 4.5 to 5.0.3 today. So first impressions... Overall v5 is a great advance and for such a large update has gone remarkably smoothly for me and others. Well done for that! It is often the case that stuff is released too early but given how well you do your back compatibility I'm very impressed. UX Fail The downside for me is the new wide screen and widget dashboard layout. WHMCS is now really hard to use on a 1024x768 width screen. That is unconscionable. You really must cater for a variety of end user setups with a product like this, and this is a major fail unless you have a workaround, because I'm either stuck with a font size I can't read, or a dashboard that doesn't fit within the width of my screen. Even with a larger resolution, on my 16" CRT monitor I can't make this readable. So I now have perpetual horizontal scrolling, or I'm supposed to buy a new monitor to use WHMCS? Come on guys, this is a web application. Please tell me there's a way around this. Thanks Mark
-
What is the current status of this add-on? Is it tested with latest WHMCS (4.5.2)? Personally I think this kind of functionality should be brought withing WHMCS. Have you talked to them about this possibility? Thanks, Mark
-
Free domain shows non-free cost until added to cart
theWebalyst replied to theWebalyst's topic in Using WHMCS
John, Thanks for the definitive answer and point about the product config page. Do you realise what a conversion problem this creates? Its massive. Adding the FREE message to the product config page is not much help I think. It means they are still going to see contradictory messages (if I understand correctly). One saying "free" and one saying "click here to buy this for $X.XX". This both worries the customer (hey, I'm going to be charged $X.XX) and undermines trust (hey, this is supposed to be free and now I'm being asked to pay). This is a terrible thing to do from a conversion point of view, and a waste of a great deal of marketing resources given you've gone to all the trouble to get the customer to buy and then lose them at the closure point! Please can you look into ways of handling this? Thanks Mark -
Free domain shows non-free cost until added to cart
theWebalyst replied to theWebalyst's topic in Using WHMCS
Aggh! Setting billingcycle via the URL is not working (thought this was ok but it must have been cached). I need a way to pre-fill the cart from another website and not scare customers off by showing charges that they are not expecting. Can I do this? Mark -
(WHMCS 4.5.2 with all patches applied to 18-8-2011). Two situations: 1) Normal order process 2) Linking to WHMCS to select product and billing cycle and skip to domain name choice https://managedwebsitehosting.net/clients/cart.php?&pid=1&skip=1&billingcycle=annually In both cases we enter a valid domain and then are asked how long to register, which shows the normal cost of the domain, even if once accepted the domain will be free. This is terrible! By this point the customer will know the domain is supposed to be free. It may even be what convinced them to buy. All of a sudden they are being asked to pay for it. A lot of customers will be lost at this point. This is AWFUL! How can I prevent the customer seeing a charge for the domain when the product and billing cycle mean it will be free? Mark
-
As already noted setting billingcycle from the URL doesn't work with the Ajax form. Note: I'm using WHMCS 4.4.2 as I'm cautious about updates. Does anyone know if the issue is fixed by a later version? If not this makes a real mess of the form for me as it has knock on effects for a user arriving from a special offer page. It means the "Order Summary" is a right mess (domain reg not free, discount not applied etc.). Take a look here: https://managedwebsitehosting.net/clients/order/?pid=1&skip=1&billingcycle=annually&promocode=NEWS20 The user should see a £39.95 product discounted down to £19.95 including a free domain. Instead they see: an "Order form" with input for domain name, alongside "Order Summary" with product and discount, but wrong billing cycle (monthly) and wrong price because the discount applies to annual not monthly. When they provide a domain: this appears in the order summary at a cost of £23.95 (that's 2 years for a .co.uk domain) which is more than the total of £19.95 they are expecting! Domain reg should be listed at £0.00 because it is free. Aggh! I'll lose every customer at this point! If the billingcycle was correctly set to annual it all looks much better, although there's still one annoyance... the "Domain Configuration" form has DNS/Email unchecked even though they will be free, which is a pain too. Is the billingcycle thing a bug? Is it fixed since 4.4.2?) Is there a workaround (e.g. editing order/index.php)? Any solution to the annoyance with DNS/Email being unchecked? Thanks guys, Mark
-
Tip: How to display prices etc on non-WHMCS pages
theWebalyst replied to theWebalyst's topic in Third Party Add-ons
@Giannis, That seems to be an issue with Joomla or the plugin so you would be better taking the question to a forum with people who know about them. I can't help, sorry. Mark -
I want to generate a single use coupon and email this to the lucky recipient using an email autoresponder. Does anyone have PHP code to automatically generate a coupon? I could probably work it out but I'm still learning MySQL so any help would be appreciated. Otherwise I'll be sending out a manually made coupon which I embed in the autoresponder email, which means it will have to be multiple use, and people will be able to pass around and share which is not quite what I want. Thanks, Mark
-
Hi Jason, I'm not sure what you need, as since I posted I've found that while I fixed one part of the problem (getting values for e-commerce tracking from WHMCS into the PHP generated code), the results are not showing up so my analytics code may be the problem. It isn't urgent for me to look into this so don't wait for a solution from me as I have other priorities for the time being. Good luck, and please keep this thread updated with anything you try or learn, especially if you get a solution. Mark
-
Tip: How to display prices etc on non-WHMCS pages
theWebalyst replied to theWebalyst's topic in Third Party Add-ons
Hi @BotHaTe, I'd like to use such a script to set the initial default sometime - for info, when I tried your site it stayed with USD but I'm in London UK. As for my code above it is working a treat (though still not public yet - but will be visible at my Managed Website Hosting site soon). I have a simple dropdown populated with currency's I support and control the prices shown using a little CSS and jQuery. None of this requires going to WHMCS (all currency prices are there in the page but only the chosen currency is displayed) so switching currencies is instant. Mark -
Solved! THE ABOVE CODE IS BROKEN AND MUST BE CHANGED TO MAKE IT WORK! The problem is the "//" comments in the PHP section. They are illegal there, so if you remove "// get client data" and similar lines in the PHP section the code works. Note, the "//" comments in the rest of the code are fine, only the ones between {php} and {/php} need be removed (or I guess changed to '#'). Mark
-
I have tried the above code and can't get it working. Placing some debug statements in the PHP it appears that there may be a PHP error at the select_query() call because: - stuff echo'd immediately before it appears but immediately after does not - non of the assignments to smarty variables succeed - they're all blank Is there some way of finding out why the select_query() call fails? Any ideas as to the cause? Thanks, Mark
-
Here is some code showing how to grab price and options info from the database and display it automatically, without the need to re-code your pages whenever you change product price or other settings. This is a pre-Widgets solution and so works with versions earlier than v4.4. I decided to post this as a "How To" because while there are some useful posts on this area most were incomplete or not general enough and it seems like a common requirement. For example, I am grateful for the following thread which I borrowed heavily from: http://forum.whmcs.com/showthread.php?t=23273 My simplified code below should help people adapt this approach to their application more easily. If you save it as PHP and edit the paths in the "require" statements it renders a page with two tables. One of your domain registration pricing, and one showing your hosting plans in each currency. For example: Domain Pricing Extension Price .co.uk £0.00 .co.uk £0.00 .com £8.45 .com £13.49 .org £8.45 .org £13.49 .net £8.45 .net £13.49 .eu £16.95 .eu £26.95 Hosting Plans Hosting Plan Pay Monthly Pay Annually Freelance/Practitioner £3.99 £39.95/year (£3.33/month) Freelance/Practitioner $6.99 $67.95/year ($5.66/month) Fully Managed Hosting (Freelance/Practitioner) N/A £97.00/year (£8.08/month) Fully Managed Hosting (Freelance/Practitioner) N/A $169.00/year ($14.08/month) Freelance/Practitioner €4.99 €49.95/year (€4.16/month) Fully Managed Hosting (Freelance/Practitioner) N/A €125.00/year (€10.42/month) Professional £7.49 £79.95/year (£6.66/month) Professional $12.99 $139.95/year ($11.66/month) Professional €9.99 €99.95/year (€8.33/month) Corporate £9.99 £99.95/year (£8.33/month) Corporate $16.99 $169.95/year ($14.16/month) Corporate €12.99 €124.95/year (€10.41/month) All Group & Plan Settings <snipped> These are followed by output of more detail information on all your plans (not shown to keep the length of this post managable!). Anyway, here's the code which is fairly self explanatory: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> </head> <body> <?php # WHMCS functions (note ./clients is the location of the WHMCS folder) require("clients/dbconnect.php"); require("clients/includes/functions.php"); require("clients/includes/clientareafunctions.php"); require("clients/includes/currencyfunctions.php"); #################################################### # Domain Pricing Table # # This list prices in the -default- currency only echo "<h2>Domain Pricing</h2>"; $result = mysql_query(" SELECT * FROM tblpricing LEFT JOIN tbldomainpricing ON tblpricing.relid = tbldomainpricing.id WHERE tblpricing.type = 'domainregister' ") or die(mysql_error()); echo "<table width='300' border='0' class='mytable'>"; echo "<tr><th>Extension</th><th>Price</th></tr>"; while($row = mysql_fetch_array($result)){ echo "<tr><td>"; echo $row['extension']; echo "</td><td>"; echo "£"; echo $row['msetupfee']; echo "</td></tr>"; } echo "</table>"; #################################################### # HOSTING PLAN TABLE # # This lists prices in -all- currencies. echo "<h2>Hosting Plans</h2>"; $result = mysql_query(" SELECT p.name, p.description, t.monthly, t.quarterly, t.semiannually, t.annually, c.code FROM tblproducts AS p INNER JOIN tblpricing AS t ON t.type='product' AND t.relid = p.id INNER JOIN tblcurrencies AS c ON c.id = t.currency WHERE p.hidden != 'on' AND p.type ='hostingaccount' ") or die(mysql_error()); // Used to map database code to currency symbol $currency_symbol = array( 'USD' => '$', 'GBP' => '£', 'EUR' => '€' // Euro (see http://www.cs.tut.fi/~jkorpela/html/euro.html) ); echo "<table width='300' border='0'>"; echo "<tr valign=top> <th>Hosting Plan</th> <th>Pay Monthly</th> <th>Pay Annually</th> </tr>"; while($row = mysql_fetch_array($result)){ echo "<tr valign=top>"; echo "<td>" . $row['name'] . "</td>"; // Some plans are not available monthly if ($row['monthly'] < 0) echo "<td>N/A</td>"; else echo "<td>" . $currency_symbol[$row['code']] . $row['monthly'] . "</td>"; echo "<td>" . $currency_symbol[$row['code']] . $row['annually'] . "/year (" . $currency_symbol[$row['code']] . round($row['annually']/12,2) . "/month)</td>"; echo "</tr>"; } echo "</table>"; ####################################################### # This shows how to get all settings for Groups & Plans # echo "<h2>All Group & Plan Settings</h2>"; echo "<b>Groups</b><br/>"; $whmcs_group_number = 0; $result_groups = mysql_query(" SELECT DISTINCT tblproducts.gid, tblproductgroups.id, tblproductgroups.name, tblproductgroups.order, tblproducts.type, tblproductgroups.hidden, tblproducts.hidden FROM tblproductgroups, tblproducts WHERE tblproducts.gid = tblproductgroups.id AND tblproducts.type = 'hostingaccount' AND tblproducts.hidden != 'on' AND tblproductgroups.hidden != 'on' ORDER BY tblproductgroups.order ASC ") or die(mysql_error()); while($row = mysql_fetch_assoc($result_groups)){ // populate multi-level array with individual hosting group details echo "<br/>"; foreach ($row as $key => $value){ echo "$whmcs_group_number $key: $value<br/>"; // Debug $whmcs_hosting_groups["$whmcs_group_number"]["$key"] = $value; } $whmcs_group_number++; } echo "<br><b>Plans</b><br/>"; $default_currency='1'; $groupid='1'; # get a list of plans and store them in an array for Smarty $result = mysql_query(" SELECT *, tblproducts.name AS prodname, tblproducts.id AS prodid FROM tblproducts, tblproductgroups, tblpricing WHERE tblpricing.type = 'product' AND tblproducts.id = tblpricing.relid AND tblpricing.currency = '$default_currency' AND tblproducts.gid=tblproductgroups.id AND tblproducts.type='hostingaccount' AND (tblproducts.hidden != 'on' AND tblproductgroups.hidden != 'on') AND tblproducts.gid='$groupid' ORDER BY tblproducts.id ASC ") or die(mysql_error()); $whmcs_plan_number = 0; while($row = mysql_fetch_assoc($result)){ $whmcs_plans[] = $row; # $data is the array created for use in the Smarty template. // populate multi-level array with individual hosting package details echo "<br/>"; foreach ($row as $key => $value){ echo "$key: $value<br/>"; // Debug $whmcs_plans_feature["$whmcs_plan_number"]["$key"] = $value; } $whmcs_plan_number++; $num_plans++; } echo "<br/>Total Plans: $num_plans<br/>"; ?> I haven't gone live yet, but sometime in the next few days you'll be able to see the end result at Managed Website Hosting Mark
-
@xeqution thanks - did you spell that right - there's no member username "lazsof" Mark
-
[WHMCS & hosting newbie advisory] I'm yet to launch and getting the hand of WHMCS and have installed asynchronous GA code to track order completion (orderforms / complete.tpl) using info from the Docs on GA integration and a lengthy forum thread from 2010. It works up to a point. I get ecommerce data in Google but it is incomplete - only $orderid and $amount appear. Viewing the source for the "cart.php?a=complete" page I can see that only those values appear where they are passed to the Google tracker - the remainder are empty (i.e. $city, $state, $country, $packageid, $name, $type). So non of the values being accessed from the database are being obtained ($orderid and $amount come from elsewhere). Questions: 1) Does anyone have this working properly? 2) Any clues as to why the PHP code might not be obtaining these values, or not assigning them in the GA script? We're using the code from the documentation article below: http://docs.whmcs.com/Google_Analytics_Integration Thanks, Mark Web Hosting, Web Marketing & WordPress Websites for Business
