Jump to content


Popular Content

Showing content with the highest reputation since 04/29/20 in all areas

  1. 3 points
    then you take @baymax's query and change the where statement... UPDATE tblclients SET groupid='new-group-ID' WHERE email LIKE '%@hotmail.com';
  2. 3 points
    maybe this query if all 60 clients are in the same group currently. UPDATE tblclients SET groupid='new-group-ID' WHERE groupid='current-group-ID'; Replace the parts in green.
  3. 2 points
    Hi Mohamed, <?php function admin_custom_css_hook($vars) { $currenttemplate = $vars['template']; if ($currenttemplate == "blend" ) { $head_return = ''; $head_return = '<link href="templates/blend/css/admin-dark.css" rel="stylesheet" type="text/css" /> <script type="text/javascript"> $(document).ready(function() { $(\'.header .logo img\').attr(\'src\', \'templates/blend/images/logo-dark.gif\'); }) </script>'; return $head_return; } } add_hook("AdminAreaHeadOutput",1,"admin_custom_css_hook"); there was two bugs in the original hook - first, it was changing the logos on the marketconnect pages with your logo(!)... i've fixed that by being more accurate with the logo .css reference in the hook. the second bug is when you look at admin pages that appear to be in a subdirectory (due to Friendly URL settings), e.g the setup pages for notifications, security settings etc, the logo is broken - that's purely down to the path to the image being wrong... I suspect that would be fixed by either expanding the hook for those conditions or referencing the replacement image with a full URL rather than a relative path.
  4. 2 points
    there be the question - the trick is knowing which template is generating the output. πŸ˜• so if this is a cPanel product, then it's going to be /modules/servers/cpanel/templates/overview.tpl and specifically... <input type="button" onclick="popupWindow('whois.php?domain={$domain}','whois',650,420);return false;" value="{$LANG.whoisinfo}" class="btn btn-info btn-sm" /> it's worth noting... https://docs.whmcs.com/Working_with_Module_Templates so you can duplicate this overview template and move it to the active template folder (and then edit it to make your changes) - which means that during an update, WHMCS shouldn't overwrite it - if you modify the original version in the cPanel folder, it likely will.
  5. 2 points
    why? are they going to have a survey or a vote on what to add ?? (even if they did, how many users would vote??) no - they will already know what's going to change, and the user base will either have to like it or lump it.
  6. 2 points
    Hi there! I'm sorry that you feel you have had a less than optimal experience. I have reviewed your ticket and can see that our Level 2 analysts have been assisting you with your issue. In regards to these errors: PHP Warning: Module 'imap' already loaded in Unknown on line 0 PHP Warning: Module 'mbstring' already loaded in Unknown on line 0 PHP Warning: Module 'soap' already loaded in Unknown on line 0 PHP Warning: Module 'xmlrpc' already loaded in Unknown on line 0 These are caused by a PHP configuration misconfiguration. Not WHMCS. This indicates that you have multiple lines trying to load these modules when they can of course only be loaded once. To resolve this, you would need to reach out to your qualified System Administrator and have them review your PHP configuration. They will be able to provide you with the required help you need in regards to those issues as they are System Configuration issues, not WHMCS issues. We would love to have been more helpful with this issue, but unfortunately, we aren't qualified System Administrators and of course, as you know, every server can be different. This is why having a System Administrator on hand can be useful. In case you don't already have a System Administrator, the cPanel Forums have a useful Sys Admin listing which you may find helpful: https://go.cpanel.net/sysadmin Have a great day! Peter
  7. 2 points
    Hi, Please check the screenshot, the number shown should be the Proforma Invoice number and even when the Proforma Invoice is changed to Tax Invoice after payment this number remains the same as Proforma. Hope this helps...
  8. 2 points
    two options (at least when using Six) - you can either remove them using action hooks.... https://docs.whmcs.com/Editing_Client_Area_Menus https://docs.whmcs.com/Client_Area_Navigation_Menus_Cheatsheet ... or you can hide them with CSS (added to css/custom.css in your active template folder)... #Primary_Navbar-Services-View_Available_Addons, #Secondary_Sidebar-My_Services_Actions-View_Available_Addons {display:none;}
  9. 2 points
    I wouldn't class that as writing your own custom theme - that's just cosmetic changes to an existing theme. not mine, I don't support WGS products - that's what you pay him for! πŸ™‚
  10. 2 points
    take a look at some of the @ThemeMetro templates... https://marketplace.whmcs.com/index.php/group/ThemeMetro
  11. 2 points
    Glad it's resolved (along with the other issues you'd posted), but saying how might help someone later coming across this same thing. πŸ™‚
  12. 2 points
    not quickly - permanently making "voted" false effectively disables the bootstrap alert from ever appearing, and allows users to vote on multiple articles... I did see yesterday if I could quickly do both (show alert only after voting AND allow multiple votes), but there wasn't an obvious quick solution - the emphasis here being on quick! ☺️ if you want to edit the knowledgebasearticle.tpl, you can modify the buttons to show a alert popup on voting... <button type="submit" name="vote" value="yes" class="btn btn-lg btn-link" onclick="window.alert('{$LANG.knowledgebaseArticleRatingThanks}');"><i class="far fa-thumbs-up"></i> {$LANG.knowledgebaseyes}</button> <button type="submit" name="vote" value="no" class="btn btn-lg btn-link" onclick="window.alert('{$LANG.knowledgebaseArticleRatingThanks}');"><i class="far fa-thumbs-down"></i> {$LANG.knowledgebaseno}</button> looks a little ugly, but when they click ok, their vote will be registered.
  13. 2 points
    Updated to fix the CVV error (confirmed working) I've zipped it up with the proper folder structure now too, so you can just unpack it to root and it will put everything in the correct place πŸ™‚ Braintree.zip
  14. 2 points
    it would be interesting to know what the CORE-11587 relates to - e.g whether it's just that the alert box is constantly shown after voting, or the whole limitation of only being able to vote on one kb article. I assume that it's the first - in which case, you can just remove the block of code below from knowledgebasearticle.tpl and the alerts will never be shown... {if $kbarticle.voted} {include file="$template/includes/alert.tpl" type="success alert-bordered-left" msg="{lang key="knowledgebaseArticleRatingThanks"}" textcenter=true} {/if} if it's the second, that's going to take some changes and I doubt it would occur within the core before v8. using the hook idea from 2017, I can suppress the "thanks for voting" alert and allows users to vote on multiple articles during the same session... it won't acknowledge visually that they have voted though, other than if they have voted positively, then they will see the "useful" value increase in the article... <?php # Suppress Alert & Allow Multiple Voting on KB Articles Hook # Written by brian! function kb_articles_multiple_voting_hook($vars) { $kbarticle = $vars['kbarticle']; $kbarticle['voted'] = false; return array("kbarticle" => $kbarticle); } add_hook("ClientAreaPageKnowledgebase", 1, "kb_articles_multiple_voting_hook"); they can, if they choose to, vote for the same article multiple times... I daresay that can be fixed too, but not today! ☺️
  15. 1 point
    Congratulations, you did a great job and nice tutorial.
  16. 1 point
    What is the purpose of the Contacts section in the WHMCS client area? How do I edit the Shortcuts section in the WHMCS client area? How do I edit the "Register a New Domain" section so as to remove the grey Transfer button and then add a Transfer a Current Domain option below it? Mockup below...
  17. 1 point
    you could use CSS.. .kb-article-content {font-family: arial; font-size: 10px}
  18. 1 point
    Hi @isixhostingο»Ώ I would suggest switching from using string_format to number_format - that allows you to easily specify decimal and thousand separator characters in the output... <div class="price"> {if $product.pricing.rawpricing.triennially neq -1}<span>{$currency.prefix}{($product.pricing.rawpricing.triennially/36)|number_format:2:',':'.'}{$currency.suffix}</span>/mo {elseif $product.pricing.rawpricing.biennially neq -1}<span>{$currency.prefix}{($product.pricing.rawpricing.biennially/24)|number_format:2:',':'.'}{$currency.suffix}</span>/mo {elseif $product.pricing.rawpricing.annually neq -1}<span>{$currency.prefix}{($product.pricing.rawpricing.annually/12)|number_format:2:',':'.'}{$currency.suffix}</span>/mo {else}{$product.pricing.minprice.cycleText} {/if} </div> in the above example, the number is being formatted to 2 decimal places, decimal separated using a comma (,) and thousand separated using a full stop (.) - though I would imagine if you're dividing prices by at least 12, you won't really need to define the thousands separator. πŸ™‚
  19. 1 point
  20. 1 point
    Looks like there's a fix for this issue here:
  21. 1 point
    editing the template would be the simplest way... possibly, a jQuery hook could be written - but editing the template would be far simpler. 😎 you should just need to move the div that they're in to wherever you want to display them elsewhere in the template.
  22. 1 point
    if you're using the lagom orderform template, then all you should need to do is upload this replacement configureproduct.tpl to the /tempolates/orderforms/lagom/configureproduct.tpl untested as I don't have the Lagom template installed, but it should work. πŸ™‚
  23. 1 point
    For development purposes you may find a developer license is the best to provide access to a WHMCS installation, without the 3rd party having access to your live system. We have details on how to get a developer license here: https://www.whmcs.com/members/index.php/knowledgebase/78/What-is-a-development-license-How-do-I-get-one.html
  24. 1 point
    Hi @Kian you will always be knowing this better than many. Yes we have been doing this... @Mas-J Yes surely, requirements vary user to user :) We use WHMCS for Billing clients (GST Invoicing) and always try to keep it as simple as possible. We use another offline Accounting software...we keep the Proforma Number and date details here for reference and can trace it down later. The Accounting softwar we use also offers a Free Version and is quite effective and fulfills most of basic accounting needs... http://busy.in/index.php?p=fas
  25. 1 point
    As mentioned by @zitu4life you can set the automatic provisioning options for each product - this will mean that when the invoice is paid the product can be automatically provisioned. However the order itself will remain pending. This is by design as by default WHMCS will keep orders pending so you can manually review and accept. We have further details on this here: https://docs.whmcs.com/Order_Management#Accepting_Pending_Orders There are some 3rd party plugins which can automatically accept paid orders for you too, such as: https://marketplace.whmcs.com/product/658-whmcs-order-assistant
  26. 1 point
    you could run a SQL query on the database table that would mark the tasks in there as completed... UPDATE tblmodulequeue SET completed = 0 ... that would result in them being removed from that page, but still stored in the database. you could modify the query to delete (truncate) the table rather than update - just depends how through you want to be with this. πŸ™‚
  27. 1 point
    you're piping the contact form results email into WHMCS to create a ticket ? wouldn't it be easier to cut out the middle man and just use a separate support department for users to either open a ticket on the site, or via email piping... and not the contact form ??
  28. 1 point
    you might need to change that hostname line to something similar to the line I posted in the thread below... ... because I think the hostname value has to be unique and therefore using "NA" will work once, but everyone after that will get an error message... and they won't be able to change the value because the field is hidden.
  29. 1 point
    and you're intending to make your ToS translated in different languages ? yes... <?php use WHMCS\ClientArea; use WHMCS\Database\Capsule; define('CLIENTAREA', true); require __DIR__ . '/init.php'; $ca = new ClientArea(); $ca->setPageTitle(Lang::trans('ordertos')); $ca->addToBreadCrumb('index.php', Lang::trans('globalsystemname')); $ca->addToBreadCrumb('tos.php', Lang::trans('ordertos')); $ca->initPage(); $kbarticleid = 38; if ($ca->isLoggedIn()) { $language = Capsule::table('tblclients')->where('id',$ca->getUserID())->value('language'); } else { $language = $_SESSION['Language']; } $kbarticle = Capsule::table('tblknowledgebase')->where('parentid',$kbarticleid)->where('language',$language)->value('article'); if (empty($kbarticle)) { $kbarticle = Capsule::table('tblknowledgebase')->where('id',$kbarticleid)->value('article'); } $ca->assign('terms', $kbarticle); $ca->setTemplate('tos'); $ca->output(); so the way this works now is that the page will try to get the ToS article in the current WHMCS language... if no article exists in the current or chosen language, it will show the default language version.
  30. 1 point
    if I look at mypage.php on your site, I see this... remove that line from your php file and see if it displays anything in the browser.
  31. 1 point
    the .php would be along the lines of... <?php use WHMCS\ClientArea; use WHMCS\Database\Capsule; define('CLIENTAREA', true); require __DIR__ . '/init.php'; $ca = new ClientArea(); $ca->setPageTitle(Lang::trans('ordertos')); $ca->addToBreadCrumb('index.php', Lang::trans('globalsystemname')); $ca->addToBreadCrumb('tos.php', Lang::trans('ordertos')); $ca->initPage(); $kbarticle = Capsule::table('tblknowledgebase')->where('id','33')->value('article'); $ca->assign('terms', $kbarticle); $ca->setTemplate('tos'); $ca->output(); the '33' is the id value of your kb article that contains your ToS text... and then the tos.tpl template needs to contain {$terms} - that's it! {$terms} you might need to play with additional styling in the template file depending on your site or additional styling needs, but if the .php file finds the specified article, then the text will be displayed in the page...
  32. 1 point
    both of those are not encrypted - so they can be copied, renamed and used for other purposes.
  33. 1 point
    @brian! You did your magic! The new hook fixed the issue. Correct date on excerpts and full announcements. Thanks a million for your help.
  34. 1 point
    editing the content of that text is via Language Overrides... $_LANG['cartdomainsnohosting'] = "No Hosting! Click to Add"; ... and the red font colour is defined inline in the configuredomains.tpl template in your orderform template folder.
  35. 1 point
    What about a lazy way? Attach a PDF to order completed email template with instructions. Additionally (or alternatively) you could automatically open a ticket via API with an action hook. Customers are required to attach the PDF signed with a reply.
  36. 1 point
    UPDATE tblclients SET allow_sso = '1'; I think, though i'm not 100% sure, that they're all on by default when an account is created - and only if you want one or more of them to be disabled en masse, would you need to use a SQL query. if you wanted ALL clients to have ALL email notifications enabled, you would just NULL the appropriate column... UPDATE tblclients SET email_preferences = NULL; ... remembering of course that the client can login and disable/enable any of them from their client area at any time.
  37. 1 point
    in your product setup, you can add a subdomain option to the product. https://docs.whmcs.com/Products_and_Services#Other so in your case, you would enter .gwcorphosting.com in the subdomain setup field - then users ordering this product will be given 4 options (register/transfer/owndomain or subdomain)... using hooks, you could remove any of the other 3 options on a per product basis, but you might not want or need to do that for your purpose.
  38. 1 point
    Thats a nice looking website, wel done πŸ™‚
  39. 1 point
    cartbox? isn't that vertical steps?? it's like seeing an old friend again from a bygone era! πŸ™‚ the checkout page in vertical steps would have been viewcart.tpl and so the above code should be in there. that said, for any checkout page that uses the $gateways array, the hook should work... if this is a very old version of WHMCS, then ClientAreaPageCart might not exist, but you could use ClientAreaPage and limit it to the checkout page... though if the site I have bookmarked for you is still correct, then you don't use the $gateways array.
  40. 1 point
    In my example I used FontAwesome 5 but probably your WHMCS still uses FontAwesome 4. Open FA4 and look for the right class names to use. As a reference the "globe" icon on FA5 is: <i class="fas fa-globe"></i> While on FA4 is: <i class="fa fa-globe"></i>
  41. 1 point
    and yet you're dumping ClientX and wanting to replace it with your own custom theme ?
  42. 1 point
    Then simply set key/value pairs like follows: <?php $Data = Capsule::select(Capsule::raw('SELECT value FROM tbladdonmodules WHERE module = "ctaa" AND setting IN ("logo", "Dropdown Field Name", "text") LIMIT 3')); foreach ($Data as $v) { $module->{strtolower(str_replace(' ', '-', $v->setting))} = $v->value; } // You can access values like follows: echo $module->logo; echo '<br>'; echo $module->dropdown-field-name; echo '<br>'; echo $module->text; I had to use str_replace and strtolower since one of your settings is "Dropdown Field Name".
  43. 1 point
    WHMCS Global Services was hacked a few years back with all of their modules, do a search for whmcs global services hacked and be the judge yourself. I'm pretty sure it's fixed now but just giving you a reference point. I believe MG have their share of issues but not as severe as WGS faced.
  44. 1 point
    almost certainly you're going to need a hook because if memory serves, when you get to the configure product stage, the template won't have access to the other products in the current product group - only the current product. so it would be a query to the tblproducts table get the product names & ids of the products in that current group and return the result as an array... then it's a case of creating a foreach loop in the template to run through that array and create the dropdown options.
  45. 1 point
    If you need any help sorting that out @gei, please let me know - I've done that for two large hosts now, one of them from any other registrar (which allows for consolidating varied portfolios) --> to the new one. Happy to answer any questions.
  46. 1 point
    the templates, configureproduct and ordersummary, wouldn't have access to the domain price at that stage. if memory serves (and which you seem to have confirmed!), you'll have access to the domain name (from which you will be able to get the TLD) and period in both templates and that should be enough to pull a price from either the database or a feed... though the complicating factors are that you might also have to determine in the client is logged if and if they belong to a client group with a pricing slab; if there are promotion codes at play that could affect the domain price. in configureproduct, you would at least have the option of a hook, whereas with ordersummary, I suspect you'd have to do everything in Smarty with no direct access to the database, so a domain price feed could be used.
  47. 1 point
    I don't want to sound petulant but every time people talk about what is needed in WHMCS, the thread usually focuses on the app, admin interface, templates and open source. We have people asking to replace Smarty, Laravel or whatever with -insert any library here- just because it's newer and used by -insert any popular CMS/CRM here-. We don't need that. It'll make things worse not better. That's my opinion.
  48. 1 point
    There is a lot of things to highlight, starting to make WHMCS admin not so encrypted with those name WHMCS branded on all pop up. I think WHMCS software could get better sales, if not encrypt some things that would allow developers to customize it. If v8 comes with same client summary page, I will definitely hire some one to develop a more modern one for me. Currently client summary page has a lot of information, but I think it is outdate, not modern one, personally I think it is ugly 😣 those information could be better rearranged. - Add possibility to view ticket with html code on a browser; - I really need to check out more future requests I have opened on past. PS: a lot of things bu I like WHMCS software.
  49. 1 point
    then you have two problems to work around... the $announcements array, used in the homepage, only contains a maximum of 3 announcements. the homepage.tpl template is hard-coded to only show 2 announcements. so to get around the first issue, you need to create a hook to query the database and get the last x announcements - in the example below, i'm going to limit it to 5, but you could change that to any number, or remove it to get all announcements... so in /includes/hooks create a new .php file, call it homeannounce.php (or anything you like) and paste the code below into it... <?php # Get More Announcements on Homepage # Written by brian! use Illuminate\Database\Capsule\Manager as Capsule; function homepage_announcements_hook($vars) { $announce = Capsule::table('tblannouncements') ->where('published','<>','0') ->where('published','<>','') ->select('id','date as rawDate','title','announcement as text') ->orderBy('date','desc') ->limit(5) ->get(); $encodedata = json_encode($announce); $decodedata = json_decode($encodedata, true); foreach ($decodedata as $index => $option){ $decodedata[$index]['urlfriendlytitle'] = getModRewriteFriendlyString($decodedata[$index]['title']); $decodedata[$index]['summary'] = mb_strimwidth($decodedata[$index]['text'], 0, 350, "..."); } return array("announcements" => $decodedata); } add_hook("ClientAreaPageHome", 1, "homepage_announcements_hook"); ?> that will now give you an announcements array containing x number of posts - so now we just need to edit the homepage.tpl template and get it to show more announcements... the limit is imposed by the following line ~16 {if $announcement@index < 2} if you wanted to show all announcements, and you had tweaked the above hook to get them all, you could remove the above line entirely (along with its corresponding /if too)... or use the following code to show all the announcements in the array (as either defined by the limit value in the hook, or the entire array if no limit is specified)... {if $announcement@index < $announcements|@count} when updating WHMCS, remember that it may overwrite this change to the template (but not the hook) - so keep a note about replacing the line after an update... otherwise, you'll be back to just showing 2 announcements again!
  50. 1 point
    in admin panel it's not possible. You need go to: /public_html/mobules/servers/cpanel/template/overview.tpl and delete what you need. Sorry for my english
  • Create New...

Important Information

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