Salman75 Posted March 3, 2009 Share Posted March 3, 2009 Hi, For some very strange reason, WHMCS allows clients to "renew" domains that expired over 6 months ago. Since the domains are generally held by the registrars at that time, we end up having to refund the invoices and incurring fees. I understand the logic behind allowing that for 30 days after the expiry date but why after that? Thanks for looking into this. 0 Quote Link to comment Share on other sites More sharing options...
scurrell Posted March 3, 2009 Share Posted March 3, 2009 If they expired 6 months ago, why haven't you set them to cancelled? 0 Quote Link to comment Share on other sites More sharing options...
Salman75 Posted March 3, 2009 Author Share Posted March 3, 2009 I have thousands of domains so its not possible for us to manually change each expired domain to cancelled state. 0 Quote Link to comment Share on other sites More sharing options...
othellotech Posted March 4, 2009 Share Posted March 4, 2009 I have thousands of domains I'm suprised you havent already implemented a whole host of cron-jobs to assist then ... update tbldomains set status=Cancelled where status=Expired and date > '".$today-30days."'; ... 0 Quote Link to comment Share on other sites More sharing options...
Patty Posted March 4, 2009 Share Posted March 4, 2009 So if the status is showing Expired past 30 days, WHMCS won't automatically cancel them?? Wouldn't make more sense this way than having to create another cron job to do that? 0 Quote Link to comment Share on other sites More sharing options...
R-n-R Posted March 4, 2009 Share Posted March 4, 2009 Actually what would make the most sense is allow what ever Registrar you are using the same options that the Registrar allows. For instant I use ResellerClub, if the domain name has expired in last 30 days, allow the customer to renew as normal, currently can do. If the domain name has slipped into Redemption Period, then allow us to set pricing for redemption and customer would have to pay the redemption price to get domain back. Once the domain has been deleted from the Registrar, then the domain should be deleted from the customers Account in WHMCS, or at least set to canceled. But I say actually delete the domain (keeping all past invoices associated with the domain) At least for the ResellerClub Registrar in WHMCS there is a WHMCS Sync Cron job that syncs up the expiration date at the Registrar to the one showing in customers account, should it be wrong. I would think you could modify that same Cron Job to accomplish the other items mentioned above as well. 0 Quote Link to comment Share on other sites More sharing options...
othellotech Posted March 4, 2009 Share Posted March 4, 2009 So if the status is showing Expired past 30 days, WHMCS won't automatically cancel them?? Wouldn't make more sense this way than having to create another cron job to do that? No, as every registry and in many cases every tld is different and has differnet 9and ever changing) rules. I do agree some "maintenance" tasks are needed, however *exactly* what they do would vary greatly between installations ... so a "tidyup" daily process which does various jobs based on admin/config choice is the only way for it to work - at present that means coding them yourself 0 Quote Link to comment Share on other sites More sharing options...
Patty Posted March 4, 2009 Share Posted March 4, 2009 I see. Tks for your reply. 0 Quote Link to comment Share on other sites More sharing options...
dexus Posted March 6, 2009 Share Posted March 6, 2009 No, as every registry and in many cases every tld is different and has differnet 9and ever changing) rules. It would be nice to have such settings in WHMCS for every TLD. 0 Quote Link to comment Share on other sites More sharing options...
othellotech Posted March 7, 2009 Share Posted March 7, 2009 It would be nice to have such settings in WHMCS for every TLD. you'd need it for every tld and registry combination though we simply disable the renew button at expiry date minus 31, and stop them being able to pay the invoice based on our own rules for each tld - solves the problem 0 Quote Link to comment Share on other sites More sharing options...
Patty Posted March 7, 2009 Share Posted March 7, 2009 I'm suprised you havent already implemented a whole host of cron-jobs to assist then ...update tbldomains set status=Cancelled where status=Expired and date > '".$today-30days."'; ... I'm getting an error when I run that comand: Error SQL query: UPDATE tbldomains SET STATUS = Cancelled WHERE STATUS = Expired AND date > '".$today-30days."' MySQL said: #1054 - Unknown column 'Expired' in 'where clause' MySQL version is 4.1.22-standard. Also how do I set up a cron job to run that comand? Pardon my ignorance but I'm not a programmer, I just can find my way around sometimes. 0 Quote Link to comment Share on other sites More sharing options...
dexus Posted March 7, 2009 Share Posted March 7, 2009 we simply disable the renew button at expiry date minus 31, and stop them being able to pay the invoice based on our own rules for each tld - solves the problem What rules are you talking about...? If you disable renew button and cancel domain, there will still be an invoice that client can pay. 0 Quote Link to comment Share on other sites More sharing options...
RPS Posted March 9, 2009 Share Posted March 9, 2009 A standardized setting of "set 30 day expired domain to cancel" would be a much useful config option in the general settings. This would take care of most of the problems we have today. WHMCS wouldn't have to worry about checking if it is in redemption period, find out the reseller's cost, add that into the price for each TLD the reseller is using, etc.. That is just way too much work. If someone has the SQL statement, it may be worth it to send it in to WHMCS Support and request this be implemented. It isn't hard to add something like that into the mix. 0 Quote Link to comment Share on other sites More sharing options...
Salman75 Posted March 9, 2009 Author Share Posted March 9, 2009 A standardized setting of "set 30 day expired domain to cancel" would be a much useful config option in the general settings. This would take care of most of the problems we have today. Yes, I completely agree! 0 Quote Link to comment Share on other sites More sharing options...
dexus Posted March 9, 2009 Share Posted March 9, 2009 I also have to agree with that. I would also suggest one more thing in addition... Domains expired after 30 days should be set to some new status, for example "Expired Archive" or something like that, and domains with that status should not be shown on client side. We have a clients with 20+ expired domains and that looks really messy on the client side, and after few years some clients can have maybe even 100+ expired domains and it's very stupid that any domain that expired few years ago still be shown in client control panel forever... I think that also something similar should be implemented for expired (terminated) services with some global configurable option for X days after expiration that will change expired and terminated service to some hidden status maybe "Terminated Archive". 0 Quote Link to comment Share on other sites More sharing options...
Salman75 Posted March 10, 2009 Author Share Posted March 10, 2009 Yes, I have a few clients who own dozens of domains and you are correct that it would not appear very professional to have all the expired domain still showing. 0 Quote Link to comment Share on other sites More sharing options...
XN-Matt Posted March 12, 2009 Share Posted March 12, 2009 What rules are you talking about...? If you disable renew button and cancel domain, there will still be an invoice that client can pay. Not if you code it in to cancel the domain (+invoice) as I suspect Rob is doing. 0 Quote Link to comment Share on other sites More sharing options...
dexus Posted March 12, 2009 Share Posted March 12, 2009 Well, in that case, yes, but that should be part of WHMCS, so we don't have to code the same thing... And also for us very important feature would be that old expired domains and services can be hidden from client side. 0 Quote Link to comment Share on other sites More sharing options...
jozeph Posted March 12, 2009 Share Posted March 12, 2009 Today one of our customer have renewed a domain that has expired 1 year ago. I really don't belive that WHMCS don't support this situation. I would like to suggest the implementation of grace period and add tax fee to renew domains expired a long time. Resellerclub, for example, charge 60 dollars to renew domains after expired grace period. 0 Quote Link to comment Share on other sites More sharing options...
jozeph Posted March 13, 2009 Share Posted March 13, 2009 To temporary solve this problem while a new version fixing this issue isn't available, try add this to the top of your clientareadomains.tpl: {php} @mysql_query("UPDATE tbldomains SET status='Cancelled' WHERE userid='".$_SESSION["uid"]."' AND status='Expired' AND expirydate < DATE_SUB(CURDATE(), INTERVAL 20 DAY)"); {/php} 0 Quote Link to comment Share on other sites More sharing options...
hiddenko Posted April 1, 2009 Share Posted April 1, 2009 (edited) Another temporary solution - in clientareadomaindetails.tpl add one more {if} to disable buttons: Change this <p><strong> » {$LANG.domainmanagementtools}</strong></p> <table align="center"><tr> {if $renew}<td><form method="post" action="{$smarty.server.PHP_SELF}?action=domainrenew"> <input type="hidden" name="domainid" value="{$domainid}"> <p align="center"><input type="submit" value="{$LANG.domainrenew}" class="button"></p> </form></td>{/if} {if $managecontacts}<td><form method="post" action="{$smarty.server.PHP_SELF}?action=domaincontacts"> <input type="hidden" name="domainid" value="{$domainid}"> <p align="center"><input type="submit" value="{$LANG.domaincontactinfo}" class="button"></p> </form></td>{/if} {if $emailforwarding}<td><form method="post" action="{$smarty.server.PHP_SELF}?action=domainemailforwarding"> <input type="hidden" name="domainid" value="{$domainid}"> <p align="center"><input type="submit" value="{$LANG.domainemailforwarding}" class="button"></p> </form></td>{/if} {if $dnsmanagement}<td><form method="post" action="{$smarty.server.PHP_SELF}?action=domaindns"> <input type="hidden" name="domainid" value="{$domainid}"> <p align="center"><input type="submit" value="{$LANG.domaindnsmanagement}" class="button"></p> </form></td>{/if} {if $getepp}<td><form method="post" action="{$smarty.server.PHP_SELF}?action=domaingetepp"> <input type="hidden" name="domainid" value="{$domainid}"> <p align="center"><input type="submit" value="{$LANG.domaingeteppcode}" class="button"></p> </form></td>{/if} {if $registerns}<td><form method="post" action="{$smarty.server.PHP_SELF}?action=domainregisterns"> <input type="hidden" name="domainid" value="{$domainid}"> <p align="center"><input type="submit" value="{$LANG.domainregisterns}" class="button"></p> </form></td>{/if} </tr></table> to: {if $status eq $LANG.clientareaactive} {*This line added *} <p><strong> » {$LANG.domainmanagementtools}</strong></p> <table align="center"><tr> {if $renew}<td><form method="post" action="{$smarty.server.PHP_SELF}?action=domainrenew"> <input type="hidden" name="domainid" value="{$domainid}"> <p align="center"><input type="submit" value="{$LANG.domainrenew}" class="button"></p> </form></td>{/if} {if $managecontacts}<td><form method="post" action="{$smarty.server.PHP_SELF}?action=domaincontacts"> <input type="hidden" name="domainid" value="{$domainid}"> <p align="center"><input type="submit" value="{$LANG.domaincontactinfo}" class="button"></p> </form></td>{/if} {if $emailforwarding}<td><form method="post" action="{$smarty.server.PHP_SELF}?action=domainemailforwarding"> <input type="hidden" name="domainid" value="{$domainid}"> <p align="center"><input type="submit" value="{$LANG.domainemailforwarding}" class="button"></p> </form></td>{/if} {if $dnsmanagement}<td><form method="post" action="{$smarty.server.PHP_SELF}?action=domaindns"> <input type="hidden" name="domainid" value="{$domainid}"> <p align="center"><input type="submit" value="{$LANG.domaindnsmanagement}" class="button"></p> </form></td>{/if} {if $getepp}<td><form method="post" action="{$smarty.server.PHP_SELF}?action=domaingetepp"> <input type="hidden" name="domainid" value="{$domainid}"> <p align="center"><input type="submit" value="{$LANG.domaingeteppcode}" class="button"></p> </form></td>{/if} {if $registerns}<td><form method="post" action="{$smarty.server.PHP_SELF}?action=domainregisterns"> <input type="hidden" name="domainid" value="{$domainid}"> <p align="center"><input type="submit" value="{$LANG.domainregisterns}" class="button"></p> </form></td>{/if} </tr></table> {/if} {*This line added *} Please check pictures to see result Edited April 1, 2009 by hiddenko 0 Quote Link to comment Share on other sites More sharing options...
pjlguy Posted November 23, 2010 Share Posted November 23, 2010 hiddenko, would that code work if you have many domains, some not expired, and some expired? It seems if you get to click on the renew option, then you get to a next page with all the drop down menus with renewal options for every domain. Thanks, Peter 0 Quote Link to comment Share on other sites More sharing options...
xeqution Posted November 24, 2010 Share Posted November 24, 2010 I am also experiencing the same problem with. Another great addition would be - if a domain name is transferred across to another provider, WHMCS should automatically change the status of the domain name to "cancelled". 0 Quote Link to comment Share on other sites More sharing options...
Si Posted December 16, 2010 Share Posted December 16, 2010 This SERIOUSLY needs addressed. (at source code level) - not fixes. 0 Quote Link to comment Share on other sites More sharing options...
WHMCS CEO Matt Posted December 16, 2010 WHMCS CEO Share Posted December 16, 2010 This should have been resolved quite some time ago now? Back when the domain renewals area was added to the cart, common TLD grace periods were implemented and renewals being allowed only within those windows. Also domains auto change to expired status when the expiry date passes, and only active status domains can be managed from the client area. See http://wiki.whmcs.com/Domains_Management#Domain_Renewal_Restrictions Matt 0 Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.