Как повторно отправить письмо для подтверждения регистрации? [Решено]
Использую пакет «Login».
Как можно повторно инициировать отправку письма для подтверждения регистрации?
В случаях если пользователь удалил письмо или просто отправить напоминание с соответствующей ссылкой.
UPD [решение]:
Как можно повторно инициировать отправку письма для подтверждения регистрации?
В случаях если пользователь удалил письмо или просто отправить напоминание с соответствующей ссылкой.
UPD [решение]:
$user_id = 321;
$activationUrlTime = 10800; //срок жизни 3 часа
$activationResourceId = 8;
function base64url_encode($str) {
return rtrim(strtr(base64_encode($str), '+/', '-_'), '=');
}
if ($user = $modx->getObject('modUser', $user_id)) {
$username = $user->get('username');
$pword = $user->generatePassword();
$modx->getService('registry', 'registry.modRegistry');
$modx->registry->addRegister('login','registry.modFileRegister');
$modx->registry->login->connect();
$modx->registry->login->subscribe('/useractivation/');
$modx->registry->login->send('/useractivation/', array($username => $pword), array('ttl' => ($activationUrlTime)));
$user->set('cachepwd', md5($pword));
$cachepwd = $user->get('cachepwd');
$user->save();
$confirmParams['lp'] = base64url_encode($pword);
$confirmParams['lu'] = base64url_encode($username);
return $modx->makeUrl($activationResourceId, '', $confirmParams, 'full');
}
Комментарии: 10
Тут можешь посмотреть как создать ссылку. Как отправлять письма в Modx можно нагуглить. А дальше нужно отталкиваться от конкретной задачи. Если напоминать, то нужно создавать задачу в планировщике сервера, выбирать всех не активных пользователей и рассылать ссылки на активацию.
Основная проблема в формировании ссылки. Остальное не вызывает вопросов :)
Нет понимания можно ли как-то повторно сгенерировать ссылку.
Нет понимания можно ли как-то повторно сгенерировать ссылку.
сорри, я не выспался, забыл ссылку вставить))) Тут пример.
Спасибо! Обновил пост — добавил решение.
Сделал франкенштейна из разных кусков :)
Сделал франкенштейна из разных кусков :)
Классно! Очереди.
В случаях если пользователь удалил письмо или просто отправить напоминание с соответствующей ссылкой.А как узнать, что он письмо удалил?) Или типа зарегистрировался и долгое время не подтверждает?
Да, имеется ввиду что в течении какого-то периода пользователь не подтвердил регистрацию и в этом случае нужно отправить повторно.
Костыль конечно, но можно ссылку в кэш писать. В свою папку, чтоб не чистился. Или в extended пользователя.
UPD. Она устареет же, так что не вариант
UPD. Она устареет же, так что не вариант
Можно сделать сниппет, который будет сам генерировать ссылку
Вроде сделал)
Обновил информацию в посте
Обновил информацию в посте
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.