Jump to content

Leaderboard


Popular Content

Showing most liked content since 10/11/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. 1 point
    Hello Oscar Cipriano welcome & thank you for joining WHMCS.Community! Please take a few minutes to review our
  3. 1 point
  4. 1 point
    Hello The Raw welcome & thank you for joining WHMCS.Community! Please take a few minutes to review our
  5. 1 point
    Hello The Raw, Welcome and thank you for joining WHMCS.Community! Please take a moment to introduce yourself to the other community members. If you need any assistance with the community please reach out in the WHMCS.Community Assistance Board. Thanks! WHMCS ChrisD WHMCS.Community Manager
  6. 1 point
    We had the same issue. We had to change the customer's default payment method, and ensure that no details were showing within there "credit card info", we then had to delete the customer from Stripe, and then change the customer's payment method back to stripe, and then ask them to attempt payment again. We haven't had it happen again, and hopefully never will (crossed fingers)
  7. 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...
  8. 1 point
    Every time there is a new forum member , i see the same message.. Welcome and thank you for joining WHMCS.Community! Please take a moment to introduce yourself to the other community mem...... Please email the new member with this message, but dont post automatically it for every new member !! It's Spammy and annoying for those that open Latest Post link every day !
  9. 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.
  10. 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
  11. 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.
  12. 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
  13. 1 point
    Hi, To use Feature Highlights, you need to format your product description in a particular way: https://docs.whmcs.com/Standard_Order_Form_Templates#Using_Feature_Highlights
  14. 1 point
    Hi Everyone, This is the wrong place for your feedback, I have moved it to New Community Feedback, we will not be removing the new WHMCS.Community Introduction posts at this stage but I am working to exclude it from Latest Posts
  15. 1 point
    That 100% true all i see new member when i click Latest Post
  16. 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.
  17. 1 point
    so one quick way to do it would be to add the following inside the {foreach $products as $num => $product} loop in standard_cart/viewcart.tpl... {if $product.productinfo.name eq "One-Time"} {assign totalonetime $totalonetime + $product.pricing.totaltoday->toNumeric()} {/if} that will give you a running total for one-time products, which you can then output in a similar way to your previous code... <span id="onetime" {if !$totalonetime}style="display:none;"{/if}> <span class="cost">{$currency.prefix}{$totalonetime|string_format:"%.2f"}{$currency.suffix}</span> {$LANG.orderpaymenttermonetime}<br /> </span> as it's currently written, it includes setup fees in the one-time amounts, but you could remove them by using $product.pricing.baseprice instead of $product.pricing.totaltoday, or $product.pricing.setup if you wanted a running total of just one-time setup fees.
  18. 1 point
    $username = 'admin'; $password = '123'; $params['model']->serviceProperties->save(['Username' => $username, 'Password' => $password]); https://docs.whmcs.com/Service_Properties
  19. 1 point
    please try to refresh the browser and clear caches, because its working fine for me.
  20. 1 point
    Hello WHMCS SamP welcome & thank you for joining WHMCS.Community! Please take a few minutes to review our
  21. 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
  22. 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
  23. 1 point
    How do i go about modifying the stanard order template so it shows FREE is the price is 0.00 and N/A is the price is -1 or if the domain is disabled? Any help would be appreciated
  24. 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'); } });
  25. 1 point
    Hello Sergio B welcome & thank you for joining WHMCS.Community! Please take a few minutes to review our
  26. 1 point
    This is what really frustrates me. It doesn't need reviewed by developers. You've done that already. It needs fixed. It's just a url and surely you need to FIX IT. Surely it's simple to do especially as this is a very fundamental part of speed in our support processes. Why do we have to wait for a review and a future release?
  27. 1 point
  28. 1 point
    Issue solved... 00-ioncube.ini was in cgi folder instead of cli
  29. 1 point
    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!
  30. 1 point
    using a custom template or Six? if custom, try using Six and see if the issue still occurs... if not, then the issue is likely with the custom template... if it continues, then it will need further investigation.
  31. 1 point
    OK, this error means that the custom server module 'esx' is not returning any error when an error is occurring which is causing your issue here. This would need to be resolved by your module creator. I have opened a case, CORE-11696 to better handle a null queue item in the future.
  32. 1 point
    I have to agree here. The products in the marketplace shouldn't be necessary. This is 2017, not 2001. X Failed logins should never be allowed, and the user should automatically be banned.
  33. 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
  34. 1 point
    sorry - I haven't even worked on it - been swamped by paid projects... and life in general! there's no point in posting what i've got so far because we are about to enter the v7.3 preview beta testing, and i've got no idea if they're going to change anything that's relevant to this problem... once we're out of that, or it becomes seemingly apparent that nothing relevant is going to change, then i'll take another look.
  35. 1 point
    Thanks for that link. Why would I want to create a copy of the six template and need to keep it in sync with changes in the automated update process? Why would you bother to have a custom.css file if it gets overwritten anyway? This automated update process is awfully manual.
  36. 1 point
    I've updated the script to work with WHMCS 7.2.x now: https://gist.github.com/jclarke/92cb1e0d6f312872690f3c2b4be86bf7
  37. 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.
  38. 1 point
    I assume you mean the WHMCS homepage, if so it can definitely be done... I was already working on a similar hook for those wanting a simpler logo pricing on their homepage... https://forum.whmcs.com/showthread.php?128774-Product-Info-on-Custom-Pages so leave it with me, as i'll need to spend more time tidying up the hook code when I get the chance... currently shows the pricing in the users currency (if user logged in), and in the default currency if they're not.
  39. 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])$/
  40. 1 point
    I just coded my own pricelist, it is not 100% what it was before, because I also adapted it to my needs as I was at it, but it should work fine for most I guess... domainpricelist.php <?php use Illuminate\Database\Capsule\Manager as DB; define("CLIENTAREA", true); require("init.php"); $ca = new WHMCS_ClientArea(); $ca->setPageTitle($whmcs->get_lang('domainspricing')); $ca->addToBreadCrumb('index.php', $whmcs->get_lang('globalsystemname')); $ca->addToBreadCrumb('domainpricelist.php', $whmcs->get_lang('domainspricing')); $ca->initPage(); $currencyid = $whmcs->get_req_var('currency'); if (!$currencyid) { $currencyid = $whmcs->get_req_var('currencyid'); } if (!is_numeric($currencyid)) { $currency = array(); } else { $currency = getCurrency('', $currencyid); } if (!$currency || !is_array($currency) || !isset($currency['id'])) { $currency = getCurrency(); } $currencyid = $currency['id']; $categories = array(); $tldcategories = DB::table('tbltld_category_pivot as p') ->join('tbltld_categories as c', 'c.id', '=', 'p.category_id') ->join('tbltlds as t', 't.id', '=', 'p.tld_id') ->join('tbldomainpricing as d', DB::raw("binary d.extension"), '=', DB::raw("binary CONCAT('.', t.tld)")) ->orderBy('c.is_primary', 'desc') ->orderBy('c.display_order', 'asc') ->orderBy('t.tld', 'asc') ->select(['c.id', 'c.category', 't.tld']) ->get(); foreach ($tldcategories as $category) { if (!isset($categories[$category->id])) { $cat = new stdClass(); $cat->id = $category->id; $cat->category = $category->category; $cat->topLevelDomains = array(); $categories[$category->id] = $cat; } $categories[$category->id]->topLevelDomains[] = $category->tld; } $tldpricelist = DB::table('tbldomainpricing as d') ->join('tblpricing as p', 'p.relid', '=', 'd.id') ->where('p.currency', '=', $currencyid) ->whereIn('p.type', ['domainregister', 'domaintransfer', 'domainrenew']) ->orderBy('d.order') ->select(['d.extension as tld', 'd.group', DB::raw("SUM(IF(type='domainregister', msetupfee, NULL)) AS register"), DB::raw("SUM(IF(type='domaintransfer', msetupfee, NULL)) AS transfer"), DB::raw("SUM(IF(type='domainrenew', msetupfee, NULL)) AS renew")]) ->groupBy('d.extension') ->get(); $tldpricing = array(); foreach ($tldpricelist as $tld) { $tldpricing[substr($tld->tld, 1)] = $tld; } $ca->setTemplate('domainpricelist'); $ca->assign('tldcategories', $categories); $ca->assign('tldpricing', $tldpricing); $ca->assign('tldpricelist', $tldpricelist); $ca->assign('currency', $currency); $ca->output(); domainpricelist.tpl {if !$loggedin && $currencies} <div class="currencychooser pull-right clearfix margin-bottom"> <div class="btn-group" role="group"> {foreach from=$currencies item=curr} <a href="domainpricelist.php?currency={$curr.id}" class="btn btn-default{if $currency.id eq $curr.id} active{/if}"> <img src="{$BASE_PATH_IMG}/flags/{if $curr.code eq "AUD"}au{elseif $curr.code eq "CAD"}ca{elseif $curr.code eq "EUR"}eu{elseif $curr.code eq "GBP"}gb{elseif $curr.code eq "INR"}in{elseif $curr.code eq "JPY"}jp{elseif $curr.code eq "USD"}us{elseif $curr.code eq "ZAR"}za{elseif $curr.code eq "CHF"}ch{else}na{/if}.png" border="0" alt="" /> {$curr.code} </a> {/foreach} </div> </div> <div class="clearfix"></div> {/if} <div id="pricingTable"> <div class="panel-group" id="accordion" role="tablist" aria-multiselectable="true"> {foreach $tldcategories as $tldCategory} <div class="panel panel-default"> <div class="panel-heading" role="tab" id="heading{$tldCategory->id}"> <h4 class="panel-title"> <a data-toggle="collapse" data-parent="#accordion" href="#collapse{$tldCategory->id}" aria-expanded="{if [email protected]}true{else}false{/if}" aria-controls="collapse{$tldCategory->id}" class="domain-tld-pricing-category"> {$tldCategory->category} {$LANG.tldpricing} </a> </h4> </div> <div id="collapse{$tldCategory->id}" class="panel-collapse collapse{if [email protected]} in{/if}" role="tabpanel" aria-labelledby="heading{$tldCategory->id}"> <div class="panel-body"> <div class="row"> <div class="col-md-10 col-md-offset-1 col-lg-8 col-lg-offset-2 table-responsive domain-tld-pricing-table-responsive"> <table class="table table-striped table-framed"> <thead> <tr> <th class="text-center">{$LANG.domaintld}</th> {*<th class="text-center">{$LANG.domainminyears}</th>*} <th class="text-center">{$LANG.domainsregister}</th> <th class="text-center">{$LANG.domainstransfer}</th> <th class="text-center">{$LANG.domainsrenew}</th> </tr> </thead> <tbody> {foreach $tldCategory->topLevelDomains as $tld} <tr> <td>.{$tld}</td> {*<td class="text-center">{$tldpricing.{$tld->tld}.period}</td>*} <td class="text-center">{if $tldpricing[$tld]->register}{$currency.prefix} {$tldpricing[$tld]->register} {$currency.suffix}{else}{$LANG.domainregnotavailable}{/if}</td> <td class="text-center">{if $tldpricing[$tld]->transfer}{$currency.prefix} {$tldpricing[$tld]->transfer} {$currency.suffix}{else}{$LANG.domainregnotavailable}{/if}</td> <td class="text-center">{if $tldpricing[$tld]->renew}{$currency.prefix} {$tldpricing[$tld]->renew} {$currency.suffix}{else}{$LANG.domainregnotavailable}{/if}</td> </tr> {/foreach} </tbody> </table> </div> </div> </div> </div> </div> {/foreach} <div class="panel panel-default"> <div class="panel-heading" role="tab" id="heading{$tldCategory->id}"> <h4 class="panel-title"> <a data-toggle="collapse" data-parent="#accordion" href="#collapseAll" aria-expanded="false" aria-controls="collapseAll" class="domain-tld-pricing-category"> {$LANG.alltldpricing} </a> </h4> </div> <div id="collapseAll" class="panel-collapse collapse" role="tabpanel" aria-labelledby="headingAll"> <div class="panel-body"> <div class="row"> <div class="col-md-10 col-md-offset-1 col-lg-8 col-lg-offset-2 table-responsive domain-tld-pricing-table-responsive"> <table class="table table-striped table-framed"> <thead> <tr> <th class="text-center">{$LANG.domaintld}</th> {*<th class="text-center">{$LANG.domainminyears}</th>*} <th class="text-center">{$LANG.domainsregister}</th> <th class="text-center">{$LANG.domainstransfer}</th> <th class="text-center">{$LANG.domainsrenew}</th> </tr> </thead> <tbody> {foreach $tldpricelist as $tld} <tr> <td>{$tld->tld}</td> {*<td class="text-center">{$tld->period}</td>*} <td class="text-center">{if $tld->register}{$currency.prefix} {$tld->register} {$currency.suffix}{else}{$LANG.domainregnotavailable}{/if}</td> <td class="text-center">{if $tld->transfer}{$currency.prefix} {$tld->transfer} {$currency.suffix}{else}{$LANG.domainregnotavailable}{/if}</td> <td class="text-center">{if $tld->renew}{$currency.prefix} {$tld->renew} {$currency.suffix}{else}{$LANG.domainregnotavailable}{/if}</td> </tr> {/foreach} </tbody> </table> </div> </div> </div> </div> </div> </div> </div> {if !$loggedin && $currencies} <div class="currencychooser pull-right clearfix margin-bottom"> <div class="btn-group" role="group"> {foreach from=$currencies item=curr} <a href="domainpricelist.php?currency={$curr.id}" class="btn btn-default{if $currency.id eq $curr.id} active{/if}"> <img src="{$BASE_PATH_IMG}/flags/{if $curr.code eq "AUD"}au{elseif $curr.code eq "CAD"}ca{elseif $curr.code eq "EUR"}eu{elseif $curr.code eq "GBP"}gb{elseif $curr.code eq "INR"}in{elseif $curr.code eq "JPY"}jp{elseif $curr.code eq "USD"}us{elseif $curr.code eq "ZAR"}za{elseif $curr.code eq "CHF"}ch{else}na{/if}.png" border="0" alt="" /> {$curr.code} </a> {/foreach} </div> </div> <div class="clearfix"></div> {/if} <script src="templates/{$template}/js/domainchecker.js"></script> Then I modified domainregister.tpl in standard_cart to open the pricelist in a pop up <p>{$LANG.orderForm.findNewDomain}</p> <a class="btn btn-primary" onclick="popupWindow('domainpricelist.php', 'emailWin', '650', '650')"> {lang key='orderForm.showPricelist'} </a>
  41. -1 points
    Hi @pixels This would be a question better directed to Xenforo.com rather than WHMCS
  42. -1 points
    what I tend to do each morning, if there are a lot of these welcome bot messages shown in latest posts, is to click on one of the links and then the "mark forum as read" link... and then go back to latest posts, and you're left with only the real posts to look at. perhaps one option would be to permanently mark that forum as read for all members, and then they won't appear in the latest posts page - frankly, these posts are only of interest to that particular member and there's no real reason why the rest of us have to see them. now I know in the spirit of a community, we should all welcome new members to our little gathering - but as the video says, Ain't Nobody Got Time For That!
×

Important Information

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