X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=plugins%2FEmailReminder%2Flib%2Fsiteconfirmreminderhandler.php;h=e5b4a5e2ab71848e40b30bc20b1bb0e8687630cf;hb=5eba1030ae39038b7b6b0aad5de1043fae43e48d;hp=e5b561827b0de4d1b3f084accd013a9292f47165;hpb=01996b1a460693227ef263d44477bc12d297a70a;p=quix0rs-gnu-social.git diff --git a/plugins/EmailReminder/lib/siteconfirmreminderhandler.php b/plugins/EmailReminder/lib/siteconfirmreminderhandler.php index e5b561827b..e5b4a5e2ab 100644 --- a/plugins/EmailReminder/lib/siteconfirmreminderhandler.php +++ b/plugins/EmailReminder/lib/siteconfirmreminderhandler.php @@ -60,22 +60,24 @@ class SiteConfirmReminderHandler extends QueueHandler /** * Handle the site * - * @param string $reminderType type of reminder to send + * @param array $remitem type of reminder to send and any special options * @return boolean true on success, false on failure */ - function handle($reminderType) + function handle($remitem) { + list($type, $opts) = $remitem; + $qm = QueueManager::get(); try { - switch($reminderType) { + switch($type) { case UserConfirmRegReminderHandler::REGISTER_REMINDER: $confirm = new Confirm_address(); - $confirm->address_type = $object; + $confirm->address_type = $type; $confirm->find(); while ($confirm->fetch()) { try { - $qm->enqueue($confirm, 'uregrem'); + $qm->enqueue(array($confirm, $opts), 'uregrem'); } catch (Exception $e) { common_log(LOG_WARNING, $e->getMessage()); continue; @@ -84,10 +86,12 @@ class SiteConfirmReminderHandler extends QueueHandler break; case UserInviteReminderHandler::INVITE_REMINDER: $invitation = new Invitation(); - $invitation->find(); + // Only send one reminder (the latest one), regardless of how many invitations a user has + $sql = 'SELECT * FROM (SELECT * FROM invitation WHERE registered_user_id IS NULL ORDER BY created DESC) invitees GROUP BY invitees.address'; + $invitation->query($sql); while ($invitation->fetch()) { try { - $qm->enqueue($invitation, 'uinvrem'); + $qm->enqueue(array($invitation, $opts), 'uinvrem'); } catch (Exception $e) { common_log(LOG_WARNING, $e->getMessage()); continue;