Version: 2.5.2, by sabret00the
Developer Last Online: Apr 2010
Version: 3.0.1
Rating:
Released: 06-03-2004
Last Update: 04-21-2005
Installs: 36
No support by the author.
although i know this works manually, it's untested via cron
Quote:
Originally Posted by AmyKhar
This hack will email a warning to members who have not activated their account and then delete them. It can run via cron, and is a pretty darn easy hack to install.
Features:
1. Emails users after 3 days and reminds them to activate their accounts.
2. Emails users after 5 days and lets them know their account will be deleted if they do not activate.
3. Emails users after 8 days with a final warning.
4. Deletes un-activated members after 10 days.
it still does exactly the same but this time for vb3
oh yeah, it emails you to tell you who was deleted, emailed so you're always informed.
if you got a big board you can't live without this, it stops the crap from piling up.
anything messes up, i can't take responsibility i'm afraid so back up before you try it.
#########################################
Add-On:
#########################################
if you like your templates in your admin cp neat then do this:
in "includes/adminfunctions_template.php" find
now save and close cos you're done :cheeky: :bored:
[high]wol stuff been removed due to the fact this should now be in the cron directory and thus won't show up anyway[/high]
and now like the days of our youth where everything was free and our mum would have dinner on the table for us, you're done.
[high]this was a fantastic vb2 hack and was made with blood, sweat and tears by Amy, she deserves all the credit for doing a fantastic job and then giving me permission to release this, so please if you install this should your gratitude in her direction as without her it would've been impossible.
the two critical bugs that a/ it wasn't sending the activationid and b/ it was deleting users who didn't change their email correctly, have been squashed by Psico[/high]
v2.1: Boofo killed 2 bugs
v2.2: more bugs killed by Boofo
v2.3: bugs killed by psico
v2.3a: bugs killed by sv1cec
v2.4: changed activation code when one exists already removed (sv1cec)
v2.4: better cron logging (me)
v2.4: table prefix bug found by jlurken, fixed by moi
v2.5: email reminder sent to your inbox thanks to sv1vec, improved logging, removed redundant code.
v2.5.2: fixed table prefixes.
[high]YOU WILL NOW NEED TO EDIT THE FILE TO MAKE SURE IT WORKS, IT'S CLEARLY MARKED ON LINE 21[/high]
Show Your Support
This modification may not be copied, reproduced or published elsewhere without author's permission.
i saw a post by someone the other day that said they had 200 members unconfirmed, to think something like this could've seduced em into completing their registration.
What happend if a user change his email and make a mistake? This user would lost his account in ten days??
I think this hack have to check if this user is a new registration or an email change, for obvious reasons
Great hack dude!
Anyone have any info on how to accomplish this. You are right that it should check, but my skills in vb aren't good enough to do this without help
$userArray=$DB_site->query("
SELECT username,user.userid,email,joindate,activationid
FROM user
LEFT JOIN useractivation ON (user.userid=useractivation.userid)
WHERE user.usergroupid=3
");
make it select the posts column as well and then include the clause to say
PHP Code:
WHERE user.usergroupid=3
AND posts > 1
i'll take a proper loook when i wake up, as right now i need a little sleep
Maybe I'm not following the process here but would it not allow for 10 ten days for correction? While it's certainly possible to loose an occasional member, if they are even semi-active they will know they did not receive the activation notice, the usergroup permissions would not have changed to allow regular member access, plus they would have to make the same exact error in their email address twice to change it. Just seems like pretty slim odds to me.
User activationid's are not being included in the email notices for my board. Is this query correct as there is no activationid field in the user table;
PHP Code:
SELECT username,user.userid,email,joindate,activationid
FROM user
LEFT JOIN useractivation ON (user.userid=useractivation.userid)
WHERE user.usergroupid=3
i'm looking into this now, the query is correct as it pulls the column correctly but it's just coming up null, i should have an update by the end of the day.
Okay... cool. The other thing I was wondering about is it doesn't seem to list in the cron log files unless I run it manually. It's certainly working as I have no unactivated accounts over the time limit... just no logs to indicate it. Anything that I would need to change to have it running from my includes/cron/ directory? I compared log_cron_action to another script that was being logged and they seem the same to me.
User activationid's are not being included in the email notices for my board. Is this query correct as there is no activationid field in the user table;
PHP Code:
SELECT username,user.userid,email,joindate,activationid FROM user LEFT JOIN useractivation ON (user.userid=useractivation.userid) WHERE user.usergroupid=3
This is the solution for this problem, I?ve got it from activate.php:
IN manageActivation.php
Under this:
PHP Code:
while ($user=$DB_site->fetch_array($userArray)) {
Insert this code:
PHP Code:
// make random number if (empty($user['activationid'])) { //none exists so create one $user['activationid'] = vbrand(0, 100000000); $DB_site->query(" INSERT INTO " . TABLE_PREFIX . "useractivation VALUES (NULL , $user[userid], " . TIMENOW . ", $user[activationid], 0, 2) "); echo ("ActivationID created to ". $user[username]."<br>"); } else { $user['activationid'] = vbrand(0, 100000000); $DB_site->query(" UPDATE " . TABLE_PREFIX . "useractivation SET dateline = " . TIMENOW . ", activationid = $user[activationid] WHERE userid = $user[userid] AND type = 0 "); echo ("ActivationID updated to ". $user[username]."<br>"); }
There is another problem with this hack, if someone change the email address the account is deleted inmediatly because the registration date is more than 10 days old...this is CRITICAL!
So the quick solution to this is to change the query like this:
Code:
SELECT username,user.userid,email,joindate,activationid
FROM user
LEFT JOIN useractivation ON (user.userid=useractivation.userid)
WHERE user.usergroupid=3 AND user.posts = 0
So if the user have 1 or more posts the account is not deleted.