Index: trunk/core/units/users/users_event_handler.php =================================================================== diff -u -N -r2186 -r2199 --- trunk/core/units/users/users_event_handler.php (.../users_event_handler.php) (revision 2186) +++ trunk/core/units/users/users_event_handler.php (.../users_event_handler.php) (revision 2199) @@ -670,27 +670,31 @@ { foreach($user_ids as $id) { - + $email_event_user =& $this->Application->EmailEventUser('USER.MEMBERSHIP_EXPIRED', $id); + $email_event_admin =& $this->Application->EmailEventAdmin('USER.MEMBERSHIP_EXPIRED'); } } $sql = 'DELETE FROM '.TABLE_PREFIX.'UserGroup WHERE MembershipExpires IS NOT NULL AND MembershipExpires < '.mktime(); $this->Conn->Query($sql); - $pre_expiration = mktime() - $this->Application->ConfigValue('User_MembershipExpirationReminder') * 3600 * 24; - $sql = 'SELECT PortalUserId FROM '.TABLE_PREFIX.'UserGroup + $pre_expiration = mktime() + $this->Application->ConfigValue('User_MembershipExpirationReminder') * 3600 * 24; + $sql = 'SELECT PortalUserId, GroupId FROM '.TABLE_PREFIX.'UserGroup WHERE MembershipExpires IS NOT NULL AND MembershipExpires < '.$pre_expiration.' AND ExpirationReminderSent = 0'; - $user_ids = $this->Conn->GetCol($sql); - if(is_array($user_ids) && count($user_ids) > 0) + $res = $this->Conn->Query($sql); + if(is_array($res) && count($res) > 0) { - foreach($user_ids as $id) + $conditions = Array(); + foreach($res as $record) { - + $email_event_user =& $this->Application->EmailEventUser('USER.MEMBERSHIP_EXPIRATION_NOTICE', $record['PortalUserId']); + $email_event_admin =& $this->Application->EmailEventAdmin('USER.MEMBERSHIP_EXPIRATION_NOTICE'); + $conditions[] = '(PortalUserId = '.$record['PortalUserId'].' AND GroupId = '.$record['GroupId'].')'; } $sql = 'UPDATE '.TABLE_PREFIX.'UserGroup SET ExpirationReminderSent = 1 - WHERE PortalUserId IN ('.implode($user_ids).')'; + WHERE '.implode(' OR ', $conditions); $this->Conn->Query($sql); } }