Jump to content


Level 2 Member
  • Content count

  • Joined

  • Last visited

  • Days Won


Everything posted by brian!

  1. I hope you can see the hole in that suggestion. 🙄
  2. of course, whilst trying to avoid those developers on there who may have some fake reviews!
  3. brian!

    Recurring Promotions Not Working

    oh ho... I've warned for years against using the bulk pricing updater... I wouldn't even play with it in a dev, and I definitely wouldn't use it with domain pricing (which I know is not what you used it for). not from settings... though I daresay you could use the UpdateClietnProduct API to do it by looping through a list of service IDs (as it includes an autorecalc option that you can set to true). I assume you mean all services as opposed to all clients... the existing "Services" report could be quickly tweaked to include promo ID values which you can then search for... or a quick SQL query such as the one below would give you a list of services with promotions... SELECT tblhosting.* FROM tblhosting WHERE tblhosting.promoid > 0 possibly the Auto Recalculate Prices addon can do this too, but it's description makes no reference to promotion codes, so i'd suggest checking on that point first before buying it.
  4. brian!

    WHMCS navigation menu not showing

    I think we're going to have to see your hook code to see exactly what it's doing.
  5. brian!

    BrainTree Payment Module

    this is the ServerPing module by Joe Clarke ?? there's a protected download update on their site (no date on it, but I suspect it's not relevant to v7.8), but I know the product itself is no longer offered on site... perhaps it's just being pulled while they work out any kings with v7.8, or maybe it's just been abandoned... might be worth contacting them to confirm. there are a couple in Marketplace, but they're not marked as compatible with v7.8 yet - though that could just be an oversight in not updating the listings, or they may be incompatible...
  6. brian!

    Domain Renewal

    Hi @pjs32 apologies for the delay in replying - got numerous paid projects on the go and plenty of domestic distractions! as suspected, the first half was straightforward (always showing all available renewal periods); but the second half (your issue) is proving trickier to resolve.. even if you modify the array using a hook, it seemingly isn't pulling pricing values from that array when you add a renewal to the cart, it's pulling it from domain pricing... so visibly, you can override the pricing, but not the price when you add it to the cart... of course, the override hooks don't work with renewals, so they're not an option. I can see one way to do it, but it's a solution that might not necessarily work for everyone... a rough beta is currently being tested for me... I expect the first half to be released as a hook soon (just needs a little polishing); whereas, I think the second half may need to be more than a hook, or I need to think of the most appropriate way for it to work.
  7. the 151, 204 & 224 could well be correct for the outer if statement, but they are the configurable option values (.eg Quantity (GB), Server Branding etc)... however, each option within a configurable option select dropdown has it's own value and it's that value that you need to use in this inner if statement.
  8. then I suspect you're using the wrong value(s) for $option.id - let's use the "Server Branding" option below... <td> <select name="configoption[36]"> <option value="67" selected>No Change</option></option> </select> </td> so from that above code (viewed from the browser), the value that you want is not "36" from the configoption, it's "67" - with that value, if I then modify the template... {if $option.selected}<option value="{$option.id}" selected>{if $option.id eq '67'}Brian{else}{$LANG.upgradenochange}{/if}</option>{else}<option value="{$option.id}">{$option.nameonly} {$option.price}{/if}</option> ignore that i'm hardcoding the output and I haven't included your outer IF statement, I get the following... so I suspect you're going to have to work your way through viewing the source of the page in the browser and finding what the three values are for these specific "No Change" options and use *those* values in your inner IF statement.
  9. brian!

    Domain ID variable for email templates

    i'm confused - the above debug window shows that, in these domain templates, you can access the variable via Smarty in the email template itself... 😕 so I guess that we've reached the stage where we need to ask - what you want to do with this domain ID value?
  10. I suspect that... {if $option.id eq '151' and $option.id eq '204' and $option.id eq '224'} should really be... {if $option.id eq '151' or $option.id eq '204' or $option.id eq '224'} the point being that you are using this code whilst inside a loop, so one of those conditions can be true, but never all three at the same time... e.g the current option is either 151, 204 or 224 - it can't be all three at the same time (which is what your code is currently checking for).
  11. I suspect it would have to be an {if} statement in the upgrade.tpl template (as that is where the string is used, not in an array)... untested, but I think something along the lines of.. {if $option.selected}<option value="{$option.id}" selected>{$LANG.upgradenochange}</option>{else}<option value="{$option.id}">{$option.nameonly} {$option.price}{/if}</option> becomes... {if $option.selected}<option value="{$option.id}" selected>{if $option.id eq 'x'}{$LANG.upgradesupport}{else}{$LANG.upgradenochange}{/if}</option>{else}<option value="{$option.id}">{$option.nameonly} {$option.price}{/if}</option> where 'x' is the ID value of the configurable option.
  12. brian!

    Create Add Funds Invoice with discount

    there are multiple commercial addons that can do that, e.g one would be Bonus For Funds - though i'm not sure if the bonus is automated or if you have to manually decide when to add it... the developers will know, so they'd be the ones to ask on that. there was a hook that was posted a couple of years ago that prevented the Add Funds emails from being delivered to the client... I suppose in your case you could modify the hook to disable sending only if it's add funds AND there isn't a discount/negative line in the same invoice (if you're wanting to manually edit the invoice after creation)...
  13. it should work - unless you are editing a wrong .css file, e.g not the one in the active template... /* ***************************************************** ** Custom Stylesheet ** Any custom styling you want to apply should be defined here. ***************************************************** */ section#home-banner { background-color: red !important; }
  14. sure, it's just a case of changing the output below to suit your needs... if ($issue->enddate) { $bodyhtml .= '<a href="serverstatus.php" class="list-group-item"><small><b>'.$issue->title.'</b> <label class="label" style="background-color: lightgrey; color: black">'.$issue->status.'</label> <label class="label" style="background-color: '.$prioritycolor.'">'.$issue->priority.'</label><br><span style="color: black">'.$issue->description.'</span><br>'.Lang::trans('networkissuesstatusscheduled').': '.fromMySQLDate($issue->startdate, true, true).' - '.fromMySQLDate($issue->enddate, true, true).'</small></a>'; } elseif ($issue->lastupdate) { $bodyhtml .= '<a href="serverstatus.php" class="list-group-item"><small><b>'.$issue->title.'</b> <label class="label" style="background-color: lightgrey; color: black">'.$issue->status.'</label> <label class="label" style="background-color: '.$prioritycolor.'">'.$issue->priority.'</label><br><span style="color: black">'.$issue->description.'</span><br>'.Lang::trans('networkissueslastupdated').' - '.fromMySQLDate($issue->lastupdate, true, true).'</small></a>'; } so if we remove the description from the output... if ($issue->enddate) { $bodyhtml .= '<a href="serverstatus.php" class="list-group-item"><small><b>'.$issue->title.'</b> <label class="label" style="background-color: lightgrey; color: black">'.$issue->status.'</label> <label class="label" style="background-color: '.$prioritycolor.'">'.$issue->priority.'</label><br>'.Lang::trans('networkissuesstatusscheduled').': '.fromMySQLDate($issue->startdate, true, true).' - '.fromMySQLDate($issue->enddate, true, true).'</small></a>'; } elseif ($issue->lastupdate) { $bodyhtml .= '<a href="serverstatus.php" class="list-group-item"><small><b>'.$issue->title.'</b> <label class="label" style="background-color: lightgrey; color: black">'.$issue->status.'</label> <label class="label" style="background-color: '.$prioritycolor.'">'.$issue->priority.'</label><br>'.Lang::trans('networkissueslastupdated').' - '.fromMySQLDate($issue->lastupdate, true, true).'</small></a>'; }
  15. brian!

    Domain ID variable for email templates

    have you checked that by testing it? just because it isn't listed in the merge field list at the bottom of the template, doesn't mean that it doesn't exist - that's not a complete list! the above is from the "Expired Domain Notice" email template and $domain_id clearly exists and contains the correct ID value for that domain. note I would expect $domain_id to only exist in Domain Type email templates... if you're searching for the domain ID value in another email template type, then you may have to query the db based on the variables that you do have access to in that template.
  16. feature requests in WHMCS take around 4-5 years to be completed - no, i'm not joking. 🙄 let me give you a similar request to yours, 6-years old, 1 vote and now archived... https://requests.whmcs.com/topic/ability-for-client-or-admin-to-merge-domain-invoices-perhaps-to-monthly I don't think a feature like this would be introduced in anything other than a major release, so v7.9, v8 etc.. but I don't expect to see another major release this year, so you're looking at 2020 - and I suspect in reality, years after that. the Billing Extension addon includes an option for monthly invoicing amongst other features... it's possibly overkill for your needs, but I can't think of another addon that consolidates monthly invoicing - so short of aligning all your due dates, or creating a custom solution, that might be your only short-term option.
  17. brian!


    ... but as you admit yourself, you're not resident in the EU, so what he's talking about doesn't apply to you... in the UK, if my business has (or I think will have) sales over £85k, I have to register for VAT; if it's less than that, I can still voluntarily register if I wish to... alternatively, I could register for MOSS and charge EU customers tax, but not those in the UK... but none of that is relevant to you because you're not resident in the EU. as a non-resident, you'll either have to register for VAT in one of the countries and collect the appropriate tax, or not register and not collect the tax - but then you might face more questions from customers like the one that caused you to start this thread!
  18. brian!


    oh EU tax rules can be confusing even when you have to deal with them every day.... 😱 no - it will be your VAT number if/when you apply for it... for example, WHMCS' would be GB927774676 - basically, when you register for VAT, they (the tax authority) will assign you a number, so if you were registering with HMRC (UK Tax), then you would be assigned a unique GB number in the same format as WHMCS above - GB just refers to the UK, so if you applied to Ireland's tax authority, it would start with IE... it doesn't particularly matter which authority you apply to, but obviously IE will be used to dealing in English and so might be the most convenient for you. technically, which is a polite way of saying legally, I don't think that you should setup WHMCS to charge these VAT rates until you have been given a number by an EU tax authority... because until then, you wouldn't have the authority to collect the tax. yes. if your default country in the localisation settings is USA, then the cart will effectively show the pricing for everyone as without VAT, only when they either click on the Estimate Tax tab in viewcart, or if they checkout then it will shown on their invoices... yes. you would need to add your EU VAT number on the invoice - the easiest way to do that would be to add it to the "Pay To Text" in general settings -> general as that it what is already used on the invoices.. ... though you could add it elsewhere to the invoice design if you wanted to. if the customer is from the EU and has added a valid VAT number of their own, then that will be automatically included in the output as part of their address on the invoices (at least with recent WHMCS versions)... if they're not from the EU, or not added a VAT number, then it won't be shown - so there's probably no need to worry about this bit (unless it's an older WHMCS version or a customised invoice template). the way to think about this is that you are acting purely as a tax collector on behalf of the EU (or technically for one if it's member's tax authorities) - that $22 is not your money, and you have collected it on behalf of the EU... which is why I said before to not collect it until you get a VAT Number. a useful walk though on this might be found on the site below.. https://europa.eu/youreurope/business/taxation/vat/cross-border-vat/index_en.htm Every three months, you need to complete a VAT return to your chosen tax authority - this can be done online (at least in the UK, but I assume it's the same in Ireland)... you then pay the VAT that you have collected in that quarter to your chosen tax authority. slightly off-topic, but I think the long-term plan of the EU is for the US tax authorities to collect these taxes on the EU's behalf and then pass the amounts back to the EU when you complete your equivalent US taxes - but I could well imagine that such a system is decades away and certainly not going to appear any time soon.
  19. brian!


    https://blog.whmcs.com/133524/feature-spotlight-tax-and-vat-improvements the point to understand is that with EU VAT, you charge the customer at the rate in THEIR EU country, so someone from Italy gets charged at 22%, from Germany 19% etc... https://www.export.gov/article?id=European-Union-How-the-EU-s-Value-Added-Tax-VAT-Impacts-U-S-Exports-2016 the point being - if you want an answer to this issue, ask your own accountants - they should know! interesting question... and if you're not a large US host with only a few EU customers, are the EU going to chase you down for VAT - probably not I would imagine if it's only a small amount... for the big hosts, it might be worth their while to chase, but not the others... you wouldn't have to register with all 28/27 countries, just choose one country and register with their Tax Authority... probably Ireland will be your logical choice. you wouldn't need that addon to sell services to EU Customers... you can do it out of the box.
  20. brian!

    Credit Card Charging Settings - potential disaster

    keep an eye on the activity log. huh... by default, WHMCS will try to take payment daily... the above option changes that to retrying once a week... you're trying to retry it every 5 minutes! or just run the CreateInvoices cron task hourly or whatever...
  21. it might still be stored in the tblconfiguration database table, but not in a separate file. https://help.whmcs.com/m/90416/l/1137708-resolving-a-down-for-maintenance-err2-error if all else fails, open a ticket with Support.. if you get your license directly from WHMCS - https://www.whmcs.com/support/ if you get your license from a reseller / host - https://www.whmcs.com/reseller-support/ in fact, it might be worth opening one anyway, just in case it takes them a while to reply...
  22. brian!

    Credit Card Charging Settings - potential disaster

    to be honest, no I don't... I don't think i've ever ran it as a forced task, so have never came across what would happen in the situation you describe.
  23. brian!

    Use value for variable in hook

    a-ha that explains why you've been viewing my network issues threads and hooks recently. 💡 would it really need to be a module though? would they need to choose the template to use ?? there's already an existing commercial hook that supposedly does it (no idea if it still works though as it's 7 years old) for £12GBP... I would assume that it's just a NetworkIssueAdd / Edit hook that triggers the sending of the appropriate email template to the affected users, or in the case of that hook, everyone if it s not a server specific issue.
  24. brian!

    Remove some registration fields

    can you make these fields that you want to be removed optional from the settings ? setup -> general settings -> other -> Optional Client Profile Fields https://docs.whmcs.com/Other_Tab#Optional_Client_Profile_Fields
  25. brian!

    Credit Card Charging Settings - potential disaster

    as you can see from the Crons docs, most tasks run daily (only once per day) - including cc processing... so unless you are overriding the default cron settings with additional tasks, cc processing should only occur daily, not every five minutes.

Important Information

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