Hello,
I have installed Amy's Unactivated User Management hack for vB2.x, and I have a question.. I would like to use this same hack to delete users who have not visited the website in 487 days (1.5 years). The original script queries this (I added the [AND posts=0] because I do not want active posting members to fall into this category unless it sits there for the 487 days):
PHP Code:
$userArray=$DB_site->query("SELECT username,user.userid,email,adminemail,joindate,activationid FROM user LEFT JOIN useractivation ON (user.userid=useractivation.userid) WHERE user.usergroupid=3 AND posts=0");
I am trying to accomplish this:
Any users that are in usergroupid IN (2, 3, 10, 11) and lastvisit is 487 days, delete them. I have commented out the mail command for testing.
PHP Code:
<?php
require('./global.php');
$pass = "";
if ($password == $pass) {
// Get all users who have not activated their accounts.
$userArray=$DB_site->query("SELECT username,user.userid,email,adminemail,joindate,lastvisit FROM user WHERE user.usergroupid IN (2, 3, 10, 11)");
while ($user=$DB_site->fetch_array($userArray)) {
// Calculate days since joining
$currentday = time();
$day = ($currentday - $user[joindate])/(60*60*24);
$username = $user[username];
$userid = $user[userid];
// Email users who have not activated after 365 days.
if ($day>364 and $day<366 and $user[adminemail] ) {
eval("\$subject = \"".gettemplate("NonVisitingEmailSubject")."\";");
eval("\$message = \"".gettemplate("NonVisitingEmailMessage365")."\";");
//mail ($user[email],$subject,$message,"From: \"$bbtitle Mailer\" <$webmasteremail>");
}
// Email users who have not activated after 473 days.
elseif ($day>472 and $day<474 and $user[adminemail] ) {
eval("\$subject = \"".gettemplate("NonVisitingEmailSubject")."\";");
eval("\$message = \"".gettemplate("NonVisitingEmailMessage473")."\";");
//mail ($user[email],$subject,$message,"From: \"$bbtitle Mailer\" <$webmasteremail>");
}
// Email users who have not activated after 480 days.
elseif ($day>479 and $day<481 AND $user[adminemail] ) {
eval("\$subject = \"".gettemplate("NonVisitingEmailSubject")."\";");
eval("\$message = \"".gettemplate("NonVisitingEmailMessage480")."\";");
//mail ($user[email],$subject,$message,"From: \"$bbtitle Mailer\" <$webmasteremail>");
}
// Delete users.
elseif ($day>487) {
$DB_site->query("DELETE FROM user WHERE userid='$user[userid]'");
$DB_site->query("DELETE FROM userfield WHERE userid='$user[userid]'");
$DB_site->query("DELETE FROM access WHERE userid='$user[userid]'");
$DB_site->query("DELETE FROM calendar_events WHERE userid='$user[userid]'");
$DB_site->query("DELETE FROM customavatar WHERE userid='$user[userid]'");
$DB_site->query("DELETE FROM moderator WHERE userid='$user[userid]'");
$DB_site->query("DELETE FROM privatemessage WHERE userid='$user[userid]'");
$DB_site->query("DELETE FROM subscribeforum WHERE userid='$user[userid]'");
$DB_site->query("DELETE FROM subscribethread WHERE userid='$user[userid]'");
$DB_site->query("DELETE FROM session WHERE userid='$user[userid]'");
//mail ("E-Mail Me","Deleted Members","The Follow Users Were Deleted due to not activating account within 45 days\n\n$user[username]\n","From: \"$bbtitle Mailer\" <$webmasteremail>");
}
}
} //end password check
else {
show_nopermission();
}
?>
The problem I am having, is that it is deleting accounts thta HAVE visited recently. Can anyone tell me where im going wrong and making this delete incorrect accounts??