Jump to content


Popular Content

Showing most liked content since 09/18/2017 in all areas

  1. 2 points
    Nate from WHMCS helped resolve this widget issue for me, so I'm posting the solution in case anyone else comes across it. The problem had to do with what I'd called the admin directory in the dev install. Apparently, installing to a folder named "dev", then naming the admin folder "dev-something" (with or without the dash) caused the routing to fall over. The admin folder name can't start with the same name as the main WHMCS folder name. Anywhere other than the start is fine, like "something-dev". He said he's logged a bug report for it, so it may not persist for long, but if you have the issue, check folder names aren't the same like that.
  2. 2 points
    technically, it's /templates/six (or custom)/includes/sidebar.tpl - but in practice, you should try to modify/remove/add them using action hooks - as detailed below... https://docs.whmcs.com/Client_Area_Sidebars_Cheatsheet there are many example sidebar hooks posted in the community, so chances are that whatever you want to do, the solution has already been posted - but if not, you can always ask!
  3. 2 points
    We are pleased to announce the release of WHMCS 7.3 to General Availability. This means that WHMCS 7.3 is now the recommended version for all new installations and upgrades. What's new in WHMCS 7.3?Sign-In IntegrationsIn WHMCS 7.3, your customers can save time and reduce the number of logins they have to remember by registering and connecting their Facebook, Twitter and Google accounts with your WHMCS installation to take advantage of instant one-click sign-in. Learn moreMailChimp E-commerce IntegrationMailChimp integration enables you to leverage MailChimp for newsletter subscription management and marketing automation. Setup welcome emails, drip feed campaigns, product on-boarding email series, abandoned cart follow-ups and more. Learn morePlesk & DirectAdmin support for MarketConnect ServicesOffer your customers new products and services including SSL, Website Builder and Spam Protection with full provisioning automation and deployment. MarketConnect services are now integrated with Plesk and DirectAdmin too. Learn moreAdmin Dashboard Widget ToggleDashboard widgets can now be toggled from displaying, allowing you to completely hide widgets you don't want. Learn morecPanel Upgrades IntegrationApplication Links continue to deliver cPanel and WHMCS web hosts the leading web hosting control panel and billing integration, and in WHMCS 7.3, new upsell integration makes it easier than ever for your customers to upgrade their package. Learn moreMore Backup OptionsNew backup options include Secure FTP as well as a new cPanel Backup option that can generate full file and database backups for you daily. Learn moreNew Payment Gateway IntegrationsTwo new payment gateway options include Accept.js from Authorize.net - Auth.net's answer to Stripe - and Skrill 1-Tap. Learn moreProject Management Addon UpdatesOver 15 reported issues addressed and fixed in V2.0.3 of the Project Management Add-on. Learn morePlus over 60 bug fixes and maintenance cases addressed.Watch the videos for Sign-In Integrations and MailChimp Integration or visit the WHMCS 7.3 What's New Site to learn more. Users of WHMCS 7.0 or later can upgrade using the Automatic Update utility.For new installations or upgrading manually, please refer to the documentation for installing or upgrading.We hope you enjoy the new version!
  4. 2 points
    thank you all for the reception. Hello, my name is Jarlles, I have a host company in Brazil for 6 years. And I am here in this forum, to help also in developing the best system for host company: WHMCS. Thank you!
  5. 1 point
    Hello The Raw welcome & thank you for joining WHMCS.Community! Please take a few minutes to review our
  6. 1 point
    I think it's correct as your product is set to use pro-rata on the 30th of the month... that will change the initial price charged. now you could argue that the order summary should show that the total is pro-rata adjusted, but I don't think it ever has done...
  7. 1 point
    If you take a look at the new Latest Posts link (this has changed don't ever bookmark it) you'll see Introduce Yourself is now excluded as a work around, Mark forum as read automatically isn't possible, but I am working ways out to get around it, I have a bit less time on the community atm with 7.3 out. I'd like to also remind everyone that the community is designed for multiple use cases and is an off-the-shelf solution. There are going to be things people like, and things people don't like; I understand the Welcome Message is one of those things, and will continue to evaluate its usefulness over a longer period of time. I have heard your feedback, and have taken it on-board.
  8. 1 point
    I finally got to the bottom of this. My environment uses different php.ini files depending on whether php is run from Apache or from CLI. WHMCS uses the php.ini file used by Apache. However, phpmailer (included with WHMCS) apparently uses the php.ini file used when php is run from CLI. When I change the max memory in the php.ini file that the CLI environment uses then phpmailer uses that memory limit. You can check the php.ini file used by CLI by running the following command php --ini
  9. 1 point
    Hi, Your cost price of MarketConnect services are in USD, so for the sake of simplicity you can only set your selling price in USD as well. However you can certainly sell these services in other currencies. To do this, you will need USD as a currency on the Setup > Payments > Currencies page with the appropriate base conversion rate. The Update Product Prices function will then convert your USD selling price into all your other currencies. This can be updated daily automatically by enabling Setup > Automation Settings > Currency Auto Update Settings.
  10. 1 point
    Hi, The MarketConnect landing pages are template controlled, so you can change the text directly on the files located in /templates/*your active template*/store/ directories. More information: https://docs.whmcs.com/MarketConnect#Customizing_Promotion_.26_Merchandising
  11. 1 point
    Hi Scott, going from the OpenSRS blog from January (we're one of their resellers in theory, but they're not cheap!)... I wouldn't disagree that, down the road, there will be some consolidation with the two platforms - but I would expect that to be a year or two away... and not in any sort of time frame that would give WHMCS the justification not to fix any bugs with their current eNom module.
  12. 1 point
    please try to refresh the browser and clear caches, because its working fine for me.
  13. 1 point
    An issue has been identified in the 7.3.0 release - published on 3rd October, 2017 - that is affecting certain forms and links in the admin area This manifests itself in one or more of the following ways: Clicking a button or link redirects to the admin area homepage Clicking a button or link seemingly does nothing (in the case of ajax buttons) Form actions result in the wrong thing / nothing happening. Redirected to a page with a URL like: whmcs/admin/?foo whmcs/admin/# Resolution We are releasing a hot-fix patch which resolves the underlying issue. Applying the HotFix To apply the fix, download the zip file from the link below. Extract the contents and upload to your whmcs directory overwriting the existing files. CORE-11715-relative-path-with-query-only-fix.zip Note: This file is only applicable if you are running Version 7.3.0
  14. 1 point
    you can always set it to redirect to a URL and then setup that page to look however you want it to. https://docs.whmcs.com/General_Tab
  15. 1 point
    it's the same as deleting any other menu child, you just have to find it's name (menuitemname) and add it to your hook... https://docs.whmcs.com/Client_Area_Navigation_Menus_Cheatsheet but it should be along the lines of... <?php /** * Remove Secondary Navbar Divider * @author brian! */ use WHMCS\View\Menu\Item as MenuItem; add_hook('ClientAreaSecondaryNavbar', 1, function (MenuItem $secondaryNavbar) { if (!is_null($secondaryNavbar->getChild('Account'))) { $secondaryNavbar->getChild('Account') ->removeChild('Divider'); } });
  16. 1 point
    Hello Sergio B welcome & thank you for joining WHMCS.Community! Please take a few minutes to review our
  17. 1 point
  18. 1 point
    Issue solved... 00-ioncube.ini was in cgi folder instead of cli
  19. 1 point
  20. 1 point
    I assume you've just copied "Hosting Plan 1" to create the other plans... you'll need to go to setup -> products/services -> products/services, select Hosting Plan 2 and modify the product description... and then do the same for Plans 3 -> 6 https://docs.whmcs.com/Standard_Order_Form_Templates#Usage
  21. 1 point
    of both files AND database.
  22. 1 point
  23. 1 point
    Odd, its not your code because I tried it out and its working on my install.
  24. 1 point
    does the hosting.tpl template exist in the templates/six (or your custom)/ folder ??
  25. 1 point
    This is another case of where WHMCS should be cleaning up after itself. I realize this is kind of hard to do, but it shouldn't be terribly hard to put some sort of if check into the upgrade script, something like if (file_exists($whmcspath//registrars/dottk/dottk.php) { die("You should consider removing the following old files, as your installation will break if you don't"); } Just saying, this would save a lot of hassle for everyone
  26. 1 point
    Hello Nicky welcome & thank you for joining WHMCS.Community! Please take a few minutes to review our
  27. 1 point
    Hello Don, Welcome to WHMCS forum. Regards, Scott C
  28. 1 point
    I finally found an old incompatible widget.
  29. 1 point
    update: yes the problem from resellercamp itself. their module has a bug and fix already thanks
  30. 1 point
    Hello Lance, I've found and fixed the issue, all you'll need to do is follow this update guide (again if you did originally): https://www.zomex.com/docs/whmcs-templates/how-to-support-whmcs-v7-3.php Thanks, Jack
  31. 1 point
    My Name is Arnaldo i'm from Chile. I'm starting in hosting business. So I will be asking in many topics. Thank you all!
  32. 1 point
    you aren't modifying the dist.whois.json file are you ? you should leave that alone, and create a whois.json file in the same folder and add your changes in there... that way, it shouldn't be affected by a WHMCS update. https://docs.whmcs.com/WHOIS_Servers#Customising_WHOIS_Servers
  33. 1 point
    Yes, because WHMCS just gets the actual details from the registrar when you click on a domain.
  34. 1 point
    @wsen the error: Smarty Error: SQLSTATE[HY000]: General error: 1267 Illegal mix of collations (latin1_general_ci,IMPLICIT) and (latin1_swedish_ci,IMPLICIT) for operation '=' (SQL: select count(`tblorders`.`id`) as aggregate from `tblorders` inner join `tblorderstatuses` on `tblorders`.`status` = `tblorderstatuses`.`title` where `tblorderstatuses`.`showpending` = 1) Indicates a collation mismatch between your tables that prevents mysql from executing the JOIN query logged. Which collation do you intend to use for your database going forward? Once you know which you want to use, this help article shows how to adjust your database to normalize the collations across your database: http://help.whmcs.com/m/72132/l/797626
  35. 1 point
    I really like the new look of the forum. Keep up the good work (Y) Like to add some new sections on some other topics, perhaps something about web design and development or digital marketing.
  36. 1 point
    It is indeed better, you don't want customers asking why you are billing them again (which you are not). I know some people don't like how WHMCS does this, as it creates a new invoice which is not actually an invoice for a product but just an invoice of an invoice. Personally, this is not something I'm a fan either. An invoice for other invoices seems rather odd, maybe even invalid or illegal in some countries with accounting (reason you can disable mass payment on the admin side). But this is how WHMCS does it and since this is a strange way to handle mass payment, it is better to keep it hidden vs having to explain how the system works to customers.
  37. 1 point
    Hey @tmr It sounds like your timezones are causing an issue The steps at https://docs.whmcs.com/Changing_Timezone should help specifically creating a custom php.ini and entering your Timezone Changing the server clock may not be desirable if clients are hosted on the server and would require root access, so option 2 is the most viable for the majority of users. A number of hosting providers allow the PHP configuration to be changed on an individual directory by creating a php.ini file within the WHMCS directory. In that situation the following line could be added: date.timezone=Europe/London For a full list of the available timezone localities you can use, please refer to http://www.php.net/manual/en/timezones.php
  38. 1 point
    When you click on latest posts give you a error https://blogs.whmcs.com/
  39. 1 point
    Hi Neil, Does this help at all: http://help.whmcs.com/m/64804/l/679701-how-to-resolve-an-http-500-error-after-update
  40. 1 point
    Hi Jez, I can think of three options, depending on exactly what you want to do... 1. if you just wanted to remove the Browse All child item and use the dropdown as a list of product groups, you could use an action hook... <?php /** * Browse All Remove Navbar Link * @author brian! */ use WHMCS\View\Menu\Item as MenuItem; add_hook('ClientAreaPrimaryNavbar', 1, function (MenuItem $primaryNavbar) { if (!is_null($primaryNavbar->getChild('Store'))) { $primaryNavbar->getChild('Store') ->removeChild('Browse Products Services') ->removeChild('Shop Divider 1'); } }); 2. if you wanted to change the link to a custom page showing product groups... <?php /** * Browse All Change Navbar Link * @author brian! */ use WHMCS\View\Menu\Item as MenuItem; add_hook('ClientAreaPrimaryNavbar', 1, function (MenuItem $primaryNavbar) { if (!is_null($primaryNavbar->getChild('Store'))) { $primaryNavbar->getChild('Store') ->getChild('Browse Products Services') ->setURI('custom.php'); } }); 3. the third option would be to modify the products.tpl page of your orderform template - by default, the old 'Slider' orderform template used to do this, but it's no longer included with WHMCS... exactly how will depend on the orderform template that you're using - an example of which is shown below... https://forum.whmcs.com/showthread.php?116082-separate-Page-for-Product-Categories
  41. 1 point
    I appreciate we're banging our heads against a brick wall but there is a feature request open to go back to the old style of cron email if anyone wants to vote it up: (for the good it'll do) https://requests.whmcs.com/topic/restore-the-previous-style-of-cron-job-email-template We, like others in this thread, have products set up that don't have any associated module (Dedicated Servers, SSL Certs, etc) so nothing was showing in the module queue for failed suspensions and terminations. The only way we found to be notified of these failed suspensions and terminations was to assign the following module to each product: https://docs.whmcs.com/Auto_Release You can then have it open a ticket when a service needs manually suspending or terminating but it's a PITA having to do this and just increases the workload and number of tickets you have to deal with. A much better solution would be for WHMCS to go back to providing us with useful actionable info in the daily cron email.
  42. 1 point
    I would have thought that as they're using the price formatter, you could do something like this... $baseprice = $vars['products']['pricing']['baseprice']; $basevalue = $baseprice->toNumeric(); or maybe just using one line.. $baseprice = $vars['products']['pricing']['baseprice']->toNumeric();
  43. 1 point
    I've updated the script to work with WHMCS 7.2.x now: https://gist.github.com/jclarke/92cb1e0d6f312872690f3c2b4be86bf7
  44. 1 point
    Count my vote !! Have seen many new scripts using it, but all have an option to disable it. Last one was xenForo. Can't understand. I'm the master (and not only Webmaster) of my site. I want to have the freedom to do anything that I want to my site. Even to let admin area available even to visitors. If they'll explode my site ok. It's MY site.
  45. 1 point
    if it helps, the version below is the one I have working in a v7.2beta dev, but it worked fine when it was v7.1 too... <?php //open invoices widget , rewritten for 7.1 //courtesy of https://www.whmcs.guru //version 1.0.1 use Illuminate\Database\Capsule\Manager as Capsule; add_hook('AdminHomeWidgets', 1, function() { return new InvoiceWidget(); }); /** * Updated invoices widget */ class InvoiceWidget extends \WHMCS\Module\AbstractWidget { protected $title = 'Open Invoices <a href="invoices.php?status=Unpaid" class="btn btn-link btn-xs">View All »</a>'; protected $description = 'An overview of Open Invoices.'; protected $weight = 150; protected $columns = 1; protected $cache = false; protected $cacheExpiry = 120; protected $requiredPermission = 'View Income Totals'; public function getData() { return array(); } public function generateOutput($data) { foreach (Capsule::table('tblinvoices') ->WHERE ('status', '=' , 'Unpaid')->get() as $invoice) { $invowner = $invoice->userid; $invid = $invoice->id; $invgenerated = $invoice->date; $invoicedue = $invoice->duedate; $invoiceamt = $invoice->total; $invoicemethod = $invoice->paymentmethod; $invlink = "invoices.php?action=edit&id=$invid"; $userlink = "clientssummary.php?userid=$invowner"; $invgenerated = $date = fromMySQLDate($invgenerated); $invoicedue = $date = fromMySQLDate($invoicedue); $invoicemethod = ucwords($invoicemethod); foreach(Capsule::table('tblclients')->WHERE ('id', '=', $invowner)->get() as $whoami) { $fname = $whoami->firstname; $lname = $whoami->lastname; $cname = $whoami->companyname; $theuser = "$fname $lname"; $currencyid = $whoami->currency; } if (empty($currencyid)) { //set to default currency $currencyid = '1'; } foreach(Capsule::table('tblcurrencies')->WHERE ('id', '=', $currencyid)->get() as $currency) { $prefix = $currency->prefix; $suffix = $currency->suffix; } $theoutput .= " <div class=\"row\"> <div class=\"col-xs-1\"> <div class=\"item\"> <a href=\"$invlink\">$invid</a> </div> </div> <div class=\"col-sm-2\"> <div class=\"item\"> <a href=\"$userlink\">$theuser</a> </div> </div> <div class=\"col-xs-3\"> <div class=\"item\"> $invgenerated </div> </div> <div class=\"col-xs-3\"> <div class=\"item\"> $invoicedue </div> </div> <div class=\"col-xs-2\"> <div class=\"item\"> $prefix$invoiceamt $suffix </div> </div> <div class=\"col-sm-1\"> <div class=\"item\"> $invoicemethod </div> </div> </div>"; } if (!empty($theoutput)) { return <<<EOF <div class="widget-content-padded"> <div class="row"> <div class="col-xs-1"> <div class="item"> <strong>ID</strong> </div> </div> <div class="col-sm-2"> <div class="item"> <strong>User</strong> </div> </div> <div class="col-xs-3"> <div class="item"> <strong>Generated</strong> </div> </div> <div class="col-xs-3"> <div class="item"> <strong>Due Date</strong> </div> </div> <div class="col-xs-2"> <div class="item"> <strong>Amount</strong> </div> </div> <div class="col-sm-1"> <div class="item"> <strong>Method</strong> </div> </div> </div> $theoutput </div> EOF; } } }
  46. 1 point
    interesting - I don't ever recall reading about AdminLang::trans in any of the documentation or release notes... i'm familiar with Lang::trans, but wasn't aware there was an admin equivalent. so if you wanted to change... <strong>Due Date</strong> you can't use the AdminLang within the output (as it causes an error), it seems you need to declare it as a variable first before the return and then use that variable later in the output... $duedate = AdminLang::trans('fields.duedate'); <strong>$duedate</strong> out of interest Eddy, what about $title - it seems to only accept a string and not a variable, so I can't see how you could make the widget title multilingual.
  47. 1 point
    one field will be enough if you have the right regex syntax the following will accept two date format (2012-10-23) and (2012/10/23): /^[0-9]{4}[-\/](0[1-9]|1[0-2])[-\/](0[1-9]|[1-2][0-9]|3[0-1])$/
  48. 1 point
    Hi, You can check the Utilities > System > PHP Info page in your WHMCS Admin area. This will show you which configuration file is loaded for the WHMCS installation and also the 'Default timezone' value in that php.ini file. You'll now know which PHP configuration to edit and set the appropriate timezone setting to match your server's time. Related documentation: http://docs.whmcs.com/Changing_Timezone
  49. 1 point
    Here is a simple widget that you can add to your Admin homepage to show your actual income between two specified dates - this could be your fiscal year; a quarter, week, six months, two years.. in fact, any dates that you wish! this is how the widget will look. the code for this widget, which i've called fiscal_income.php, is as follows: <?php if (!defined("WHMCS")) die("This file cannot be accessed directly"); function widget_fiscal_income() { $startdate = '2014-01-01'; $enddate = '2014-12-31'; $dateformat = 'd/m/Y'; $content = '<table bgcolor="#cccccc" align="center" style="margin-bottom:5px;width:100%;" cellspacing="1"> <tr bgcolor="#efefef" style="text-align:center;font-weight:bold;"><td>Start Date</td><td>End Date</td><td>Income</td></tr>'; $result = mysql_query("SELECT SUM(amountin-fees-amountout) FROM tblaccounts WHERE date BETWEEN '$startdate' AND '$enddate'"); while ($data = @mysql_fetch_array ($result)) { $content .= '<tr bgcolor="#ffffff" style="text-align:center;"><td>'.date($dateformat, strtotime($startdate)).'</td><td>'.date($dateformat, strtotime($enddate)).'</td><td>'.formatCurrency($data['SUM(amountin-fees-amountout)']).'</td></tr>'; } $content .= '</table>'; return array( 'title' => 'Fiscal Income', 'content' => $content ); } add_hook("AdminHomeWidgets",1,"widget_fiscal_income"); ?> create a new file in your /modules/widgets/ directory called fiscal_income.php and paste the above code into it. if you are unfamiliar with adding widgets to your Admin homepage, read the documentation to learn how... http://docs.whmcs.com/Widgets if the widget is working correctly, by default it should output the same income amount as already shown in the top right of your admin homepage. next you will need to modify three variables within the code to suit your own requirements... $startdate = '2014-01-01'; $enddate = '2014-12-31'; $dateformat = 'd/m/Y'; the two dates must be in YYYY-MM-DD format (as that is how they are stored in the database)... if you wanted to use your own fiscal dates, e.g 6th April 2014 - 5th April 2015, you would change the date variables to... $startdate = '2014-04-06'; $enddate = '2015-04-05'; $dateformat can be used to change the output of the date from YYYY-MM-DD to a more familiar format - for most that will be 'd/m/Y'; for China it might be 'Y/m/d' and for USA, 'm/d/Y'. in the admin area, if you currently see dates as 01/31/2014, you would modify the variable to be... $dateformat = 'm/d/Y'; I did consider querying the database to get the admin date format value currently used, but there may be circumstances where you want to use a different date format in this widget, so I decided to leave it as a variable that could be easily altered. there are plenty of alternative options with regards to modifying how dates are shown, e.g using full or abbreviate month names, days etc as shown in the table below... if you wanted to show dates as '1 January 2014 - 31 December 2014', you would use... $dateformat = 'j F Y'; i've tried to keep the output flexible (and basic) enough for others to modify... currently it just uses two dates, but you could quite easily add additional date variables to show income from current and previous fiscal years, or the last few quarters - it would simply be a case of duplicating/modifying the variables and modifying the sql query. e.g if you wanted to show income for both the current and previous fiscal year, you could modify the widget code by duplicating the date variables, and modifying the sql query. <?php if (!defined("WHMCS")) die("This file cannot be accessed directly"); function widget_fiscal_income() { $startdate = '2014-01-01'; $enddate = '2014-12-31'; $dateformat = 'd/m/Y'; $startdate2 = '2013-01-01'; $enddate2 = '2013-12-31'; $content = '<table bgcolor="#cccccc" align="center" style="margin-bottom:5px;width:100%;" cellspacing="1"> <tr bgcolor="#efefef" style="text-align:center;font-weight:bold;"><td>Start Date</td><td>End Date</td><td>Income</td></tr>'; $result = mysql_query("SELECT SUM(amountin-fees-amountout) FROM tblaccounts WHERE date BETWEEN '$startdate' AND '$enddate'"); while ($data = @mysql_fetch_array ($result)) { $content .= '<tr bgcolor="#ffffff" style="text-align:center;"><td>'.date($dateformat, strtotime($startdate)).'</td><td>'.date($dateformat, strtotime($enddate)).'</td><td>'.formatCurrency($data['SUM(amountin-fees-amountout)']).'</td></tr>'; } $result = mysql_query("SELECT SUM(amountin-fees-amountout) FROM tblaccounts WHERE date BETWEEN '$startdate2' AND '$enddate2'"); while ($data = @mysql_fetch_array ($result)) { $content .= '<tr bgcolor="#ffffff" style="text-align:center;"><td>'.date($dateformat, strtotime($startdate2)).'</td><td>'.date($dateformat, strtotime($enddate2)).'</td><td>'.formatCurrency($data['SUM(amountin-fees-amountout)']).'</td></tr>'; } $content .= '</table>'; return array( 'title' => 'Fiscal Income', 'content' => $content ); } add_hook("AdminHomeWidgets",1,"widget_fiscal_income"); ?> this will now show two rows of data - the current fiscal year in the first row; the previous fiscal year in the second row. I hope others will find this widget useful!
  50. 1 point
    Hey everyone... Cant quite figure this one out and I'm sure its extremely simple, but I need to figure out how to add conditional code to my email templates in regard to whether or not the invoice has additional notes with it. The example: {if $ticket_department eq "Sales"} Sales only operates Monday-Friday 9am-5pm {else} Your ticket has been received and will be answered shortly {/if} But what would be the "eq" for whether or not an invoice has notes or not... can I just skip that? and put {if $invoice_notes} {else} {/if} ? Thanks for the help!

Important Information

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