Jump to content

Leaderboard


Popular Content

Showing content with the highest reputation since 06/19/2019 in all areas

  1. 3 points
    Let's stop trying, every solution is a bad hack that tampers with parameters. It gives at best a false sense of security that makes you more prone to errors when it fails. If it's not removed in the next version I will seriously consider moving away from the platform.
  2. 2 points
    by making the other fields optional from the settings... https://docs.whmcs.com/Other_Tab#Optional_Client_Profile_Fields with all those fields optional, then only email address and password should be required to complete the order... any required custom client fields, security questions and TOS would be too if they were enabled, but if you're trying to keep the checkout/registration pages to a minimum, I doubt that you would enable them. ๐Ÿ™‚ then just commenting out the blocks of code in clientregister.tpl should be all that's needed - if WHMCS used properly coded CSS IDs or names in their templates, you should be able to do it that way, but until that glorious day arrives, editing the template would be easier. probably a variation of the ClientAreaPage hooks I used in the threads below... what both of those hooks do is redirect the logged in user to a specific page if certain conditions aren't met - in the case of the latter, it's the client not having previously added an answer to a security question - the hook means that until they do that, they ain't going anywhere in WHMCS - not to the cart, the kb, the clientarea homepage... they will keep getting redirected to the page until they meet the conditions. in your case, I suppose that's going to be choosing a field (or fields) that you need to be completed, e.g firstname and lastname and adjusting the hook code accordingly... once they're updated, the client can go wherever he wants within WHMCS. ๐Ÿ™‚
  3. 2 points
    Don't know if this is the right category to post this in, but I thought I wanted to share this. It's a very small hook that cancels an invoice once the product gets terminated. //<?php use WHMCS\Database\Capsule; add_hook('PreModuleTerminate', 1, function($vars) { $invoiceid = Capsule::table('tblinvoiceitems') ->where('relid', '=', $vars['params']['serviceid']) ->orderBy('duedate', 'desc') ->first(); Capsule::table('tblinvoices') ->where('id', '=', $invoiceid->invoiceid) ->update(['Status' => 'Cancelled']); }); Any feedback is much appreciated.
  4. 2 points
    The largest issue will be the resellers, VPS and dedicated server licenses, not those having to do with plain shared accounts. Keeping track of plain shared accounts on a server is simple, as is charging to cover them. Where this runs into big problems is a reseller (for instance) jamming hundreds and hundreds of accounts onto a box, and suddenly having to pay per account rather than one known license fee. WHMCS tracks the reseller account, but not the accounts that account creates on a server. If you're charging $20/m (as an example) for a reseller account, and they have sold 400 accounts, that's an extra $80/m (assuming the server already has 100+ on it) to you, the server admin/owner. You're out that $60 unless you think you can tell them they owe it. If you'd been limiting accounts per reseller all along, less concerning, but still will require onerous billing changes.
  5. 2 points
    Very sad day for hosting companies.. We trusted cPanel for years and now they didnt even think about us.. just a massive increase and survive if you could.
  6. 1 point
    In case you haven't heard yet, cPanel/WHM just announce some insane increases on their licensing prices: https://cpanel.net/wp-content/themes/cPbase/assets/downloads/cP_Store_Licensing_Guide.pdf Basically they will now charge a (much higher) flat fee, as well as a per-account fee. Prices for most people will go up at least 3-4x, if not more. Virtually every provider will have to increase prices because of this. Since WHMCS is now owned by the same company that owns cPanel, they are likely aware of the issues this will cause and probably working on fixes - ie how can we know what to charge resellers each month if we need to pay for every single account they create? FYI Oakley Capital now owns both WHMCS and cPanel, so it's likely that these two products are going to pivot to just try and extract as much money from customers as possible going forward. To say I am massively disappointed would be an understatement. This could be the beginning of the end for cPanel, and will likely push a ton of smaller hosts away from them. Sad day for the web hosting industry.
  7. 1 point
    Today we announced that WHMCS is joining the WebPros family. Following in the footsteps of Plesk and cPanel, WHMCS becomes the latest company to join WebPros exciting and growing group of companies that power the web hosting industry. Established in 2005 by CEO Matt Pugh, WHMCS is the leading web hosting billing and automation platform. WHMCS was started with the idea that selling web hosting could be made better for consumers and more efficient through automation. By combining customer management, billing and support tools into a single package, coupled with easy extensibility, today we help over 40,000 businesses scale and succeed in todayโ€™s competitive web hosting market. In 2012, WHMCS partnered with cPanel to enable us to work more closely and deliver a better experience to our many mutual customers. Today's announcement and news means we'll be able to work even more closely with cPanel, as well as our good friends at Plesk and SolusVM, giving us the opportunity to enhance the integration between all our products to create a more seamless and integrated experience for everyone. "I am looking forward to working with the teams at WebPros to deliver better software and user experiences to both our direct customers and the customers of our customers" said Matt Pugh, CEO of WHMCS. "I also want to take this opportunity to thank each and every one of our customers for putting your trust in us over the last 15 years and bringing us to where we are today." "For us, itโ€™s business as usual.", said Matt. "The same team remains in place, and we will continue to deliver the same high-quality product and experience you've come to expect. We have always strived to provide the most powerful, feature rich and reliable platform for you to operate your business from, and this commitment remains as strong as ever." Based in the UK and with offices in Houston TX, WHMCS employs a team of 28 people and powers over 40,000 businesses with a combined end user base of over 75 million customers in more than 140 countries. I've created this thread for user discussion of the announcement. We will be be monitoring and answering any questions we can.
  8. 1 point
    Also, if you use something like elementor or something with WordPress, you can generally use the Data Feeds if you don't want to use WHMPress. For the vast majority, you will likely need WHMPress, which integrates your client area into WordPress ๐Ÿ™‚ HostX as mentioned above would eliminate the need for two separate sites. You could manage pages, etc within HostX!
  9. 1 point
    Open your english.php file, read this and look for the following strings: $_LANG['tax']['taxLabel'] = "Tax ID"; $_LANG['tax']['vatLabel'] = "VAT Number"; Anyway think twice. Are you 100% sure that you really want customers to use the same field for both VAT numbers and Tax ID? For a million of reasons you'll probably need both values and not just one at a time.
  10. 1 point
    You're right, but IMHO the new management overestimated its "dominant position". My own position about it: if they are not going to run back in a couple of weeks, I have a couple of month to find a fix (using only yearly cPanel licences, most of them going to expire between September and january 2020) I'm simply evaluating what other control panel use instead of cPanel (most probably DirectAdmin), and the same is doing a number of other hosters... It seems that we need: seven to 10 days to plan migration activity 4 hours each to migrate every single server Very little time to destroy a "dominant position" ... ๐Ÿ˜‰
  11. 1 point
    This is a sad day for the hosting industry. cPanel has a monopoly in the industry and they are squeezing out whatever they can. This is not a price hike, it's holding us hostage.
  12. 1 point
  13. 1 point
    What does this mean for us as customers?
  14. 1 point
    Hi @StergiosG I assume that your old templates are compatible with v7.7 - i'd have thought they wouldn't be 100% compatible... it might be ok if you updated your URL in general settings -> general -> system URL - but it really depends on your templates and whether they're even using the system URL or are hardcoded to use the old domain path.
  15. 1 point
    How are you marking them paid? Are you doing an "Add payment" via the invoice page or using the "Mark paid" button in the invoice list? From what you have described, I would say you are using the Marked paid button . If you use the add payment and enter the transaction ID from paypal, WHMCS should not then record that transaction when they send the confirmation to WHMCS as it will see there is already a transaction with that ID. Also, the delay could be if they are using echeck as WHMCS wont record the payment until that clears.
  16. 1 point
    How we create a pop alert for client before 2 day's of overdue in clientarea Hi i want to show popup model for alert client for your due is in next 2 day please complete payment anyone have any idea ??
  17. 1 point
    for a more complete answer, I should add that you could use a ShoppingCartViewCartOutput hook, but it's output will be shown in a different location than the one you specified.
  18. 1 point
    I can proudly confirm that I have never worked for WHMCS - so not responsible for the timing of the release - to be fair, neither are Chris or John... so it comes when it comes... patience, my friend, patience. โ˜บ๏ธ
  19. 1 point
    Hello @mbsmt Thanks for your post, I suspect that you do not have a Email Templates Attachment location specified https://docs.whmcs.com/Storage_Settings please navigate to Setup > Storage Settings and setup a storage location for the Email Template Attachments
  20. 1 point
    I don't know if this is an issue across the board, but it is using an Owned License install, currently v7.7.1. Please provide a version of the PayPal module with the hidden input "modify",for the subscribe button, changed from 1 to 0. - <input type="hidden" name="modify" value="1"> + <input type="hidden" name="modify" value="0"> As long as the module continues to generate Subscribe buttons with modify enabled, clients are unable to create subscriptions.
  21. 1 point
    Hi, I tried this with a different approach, I modified line 25 and line 90. From line 25 I changed the value from "1" to "0", then on line 90 I changed checked="checked" to unchecked="checked", and it works. It shows the active and inactive clients when i search on the whmcs search box. The hide-inactive client button is now default to off.
  22. 1 point
    We need a IPMI API /module or script that will work in our WHMCS. The goal is to allow an IP to use his server IPMI because we will block all IPs by default and by using his whmcs server profile. He will have an option to enter his IP and allow IPMI access. Is it possible, can you advice us in this matter.
  23. 1 point
    to add a date range to the hook, e.g the popup will occur once anytime within x days/weeks/months etc of signing up... <?php //Show modal popup to clients (with a welcome message) for a specific period after client account creation (shown only once!) //provided by brian! function client_custom_headoutput_hook($vars) { $head_return = ''; $head_return = '<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery-cookie/1.4.1/jquery.cookie.min.js"></script> <script> $(document).ready(function() { if ($.cookie("dismiss") == null) { $(\'#myModal\').appendTo("body"); function show_modal(){ $(\'#myModal\').modal(); } window.setTimeout(show_modal, 100); } $(".dismiss").click(function() { $.cookie(\'dismiss\', \'true\', { expires: 2, path: \'/\' }); }); }); </script>'; return $head_return; } add_hook("ClientAreaHeadOutput",1,"client_custom_headoutput_hook"); use Carbon\Carbon; function client_custom_headeroutput_hook($vars) { $client = Menu::context('client'); $created = Carbon::parse($client->dateCreated); $enddate = Carbon::parse($client->dateCreated)->addDays(5); $today = Carbon::today(); $templatefile = $vars['templatefile']; if (empty($client->id)) { return; } if ($today >= $created and $today <= $enddate and $templatefile == "clientareahome") { $header_return = ''; $header_return = '<div class="container"> <div class="modal fade" id="myModal" role="dialog"> <div class="modal-dialog modal-sm"> <div class="modal-content"> <div class="modal-header"> <button type="button" class="close" data-dismiss="modal">ร—</button> <h4 class="modal-title"><i class="fa fa-thumbs-up fa-lg"></i> '.Lang::trans('hello').', '.$client->firstname.'</h4> </div> <div class="modal-body"> <p>Thank you for signing up with us!</p> </div> <div class="modal-footer"> <button type="button" class="btn btn-primary dismiss" data-dismiss="modal">'.Lang::trans('orderForm.close').'</button> </div> </div> </div> </div> </div>'; return $header_return; } } add_hook("ClientAreaHeaderOutput",1,"client_custom_headeroutput_hook"); in the above example, it's set to within 5 days of the account creation date - but you could change that to any range more suitable for your needs.
  24. 1 point
    you couldn't do it just by editing a template as the signup date isn't passed to it - so you'd need an action hook to pass it to the cart.. <?php function client_signup_date_hook($vars) { $client = Menu::context('client'); $signup = $client->dateCreated; return array("signup" => $signup); } add_hook("ClientAreaPage", 1, "client_signup_date_hook"); ?> and then in the template... {if $smarty.now|date_format:"%Y-%m-%d" eq $signup|date_format:"%Y-%m-%d"} welcome and thank you for signing up today! (popup message) {/if} the above is a basic way to do it, but if you wanted to do everything in the hook, including a bootstrap popup shown only once, you could do this... <?php //Show modal popup to clients a welcome message on their first day (only once!) //provided by brian! function client_custom_headoutput_hook($vars) { $head_return = ''; $head_return = '<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery-cookie/1.4.1/jquery.cookie.min.js"></script> <script> $(document).ready(function() { if ($.cookie("dismiss") == null) { $(\'#myModal\').appendTo("body"); function show_modal(){ $(\'#myModal\').modal(); } window.setTimeout(show_modal, 100); } $(".dismiss").click(function() { $.cookie(\'dismiss\', \'true\', { expires: 2, path: \'/\' }); }); }); </script>'; return $head_return; } add_hook("ClientAreaHeadOutput",1,"client_custom_headoutput_hook"); function client_custom_headeroutput_hook($vars) { $client = Menu::context('client'); $today = date("Y-m-d"); $templatefile = $vars['templatefile']; if (empty($client->id)) { return; } if ($client->dateCreated == $today and $templatefile == "clientareahome") { $header_return = ''; $header_return = '<div class="container"> <div class="modal fade" id="myModal" role="dialog"> <div class="modal-dialog modal-sm"> <div class="modal-content"> <div class="modal-header"> <button type="button" class="close" data-dismiss="modal">ร—</button> <h4 class="modal-title"><i class="fa fa-thumbs-up fa-lg"></i> '.Lang::trans('hello').', '.$client->firstname.'</h4> </div> <div class="modal-body"> <p>Thank you for signing up with us today!</p> </div> <div class="modal-footer"> <button type="button" class="btn btn-primary dismiss" data-dismiss="modal">'.Lang::trans('orderForm.close').'</button> </div> </div> </div> </div> </div>'; return $header_return; } } add_hook("ClientAreaHeaderOutput",1,"client_custom_headeroutput_hook"); ideally, if your site uses multiple languages, then you should use Language Overrides for all the text - i've done that on 2/3 of the above (top line and Close button). * tested and working on a v7.2.1 dev using the default Six template... if using a custom template other than one based on Six, you may need to make changes!
  25. 1 point
    you have to love WHMCS using a new navigation system, but then releasing documentation that is so thin on detail, it's close to being useless. however, the solution finally clicked into place... <?php use WHMCS\View\Menu\Item as MenuItem; add_hook('ClientAreaPrimaryNavbar', 1, function(MenuItem $primaryNavbar) { if (!is_null($primaryNavbar->getChild('Home'))) { $primaryNavbar->getChild('Home') ->setIcon('fa-home'); } if (!is_null($primaryNavbar->getChild('Services'))) { $primaryNavbar->getChild('Services') ->setIcon('fa-bars'); } if (!is_null($primaryNavbar->getChild('Domains'))) { $primaryNavbar->getChild('Domains') ->setIcon('fa-globe'); } if (!is_null($primaryNavbar->getChild('Billing'))) { $primaryNavbar->getChild('Billing') ->setIcon('fa-usd'); } if (!is_null($primaryNavbar->getChild('Support'))) { $primaryNavbar->getChild('Support') ->setIcon('fa-support'); } }); the thing to always remember is that if you are modifying or removing an existing child, you *must* first check that it exists and then only if it does, can you modify it - if you try to modify something that doesn't exist, that's when you run into issues. btw - your code didn't work for me at all.
×

Important Information

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