Все довожу до ума механизм авторизации / регистрации пользователя...
Хочется что-бы пользователь как можно меньше совершал телодвижений при оформлении заказа, при этом от регистрации отказываться не хочется, в том числе с обязательным подтверждением e-mail.
Как сделано сейчас:
1. После добавления товара в корзину и нажатия кнопки "офрмить заказ" пользователь получает окно авторизации/регистрации.
2. Конечно же большинство пользователей не зарегистрировано и начинает проходит процесс регистрации.
3. После нажатия кнопки зарегистрироваться срабатывает событие "OnAfterUserRegister" и в этот момент "backurl" записывается в сессию
4, Затем выводится окно с предложением ввести код активации или пройти по ссылке с E-Mail.
5. Если пользователь проходит по ссылке или вводит код активации, то автоматически авторизуется, и если компонент авторизации находит в сессии "backurl", то перенаправляет браузер на него, то есть на страницу оформления заказа.
Все прекрасно, но, если у пользователя другой бразузер по-умолчанию, то после перехода по ссылке он авторизуется, только никуда не переадресовывается и корзина его при этом пуста.
Я не особо силен в сессиях, а особенно в том, как этот механизм реализован в Битрикс, поэтому хотел бы спросить, есть ли возможность решить вышеуказанную проблему. У меня такое чувство, что нужно делать что-то типа этого: писать ID сессии, например в пользовательское свойство (или куда-то еще, привязывая к ID пользователя) после регистрации еще не активированного пользователя, а после подтверждения регистрации, непосредственно перед авторизацией, проверять, не закрыта ли сессия с идентификатором, который сохранен и в случае, если не закрыта, пихать пользователю cookie с правильным ID. Это дословно. Но в правильном ли направлении мыслю? Как бы вы решили такую проблему?
И еще, ковыряя шаблон main.register (который ковыряли до меня) обнаружил там среди вывода полей формы функцию bitrix_sessid_post(), при этом в дефолтном шаблоне ее не нашел. Можете подсказать, зачем она могла быть там?
Хочется что-бы пользователь как можно меньше совершал телодвижений при оформлении заказа, при этом от регистрации отказываться не хочется, в том числе с обязательным подтверждением e-mail.
Как сделано сейчас:
1. После добавления товара в корзину и нажатия кнопки "офрмить заказ" пользователь получает окно авторизации/регистрации.
2. Конечно же большинство пользователей не зарегистрировано и начинает проходит процесс регистрации.
3. После нажатия кнопки зарегистрироваться срабатывает событие "OnAfterUserRegister" и в этот момент "backurl" записывается в сессию
4, Затем выводится окно с предложением ввести код активации или пройти по ссылке с E-Mail.
5. Если пользователь проходит по ссылке или вводит код активации, то автоматически авторизуется, и если компонент авторизации находит в сессии "backurl", то перенаправляет браузер на него, то есть на страницу оформления заказа.
Все прекрасно, но, если у пользователя другой бразузер по-умолчанию, то после перехода по ссылке он авторизуется, только никуда не переадресовывается и корзина его при этом пуста.
Я не особо силен в сессиях, а особенно в том, как этот механизм реализован в Битрикс, поэтому хотел бы спросить, есть ли возможность решить вышеуказанную проблему. У меня такое чувство, что нужно делать что-то типа этого: писать ID сессии, например в пользовательское свойство (или куда-то еще, привязывая к ID пользователя) после регистрации еще не активированного пользователя, а после подтверждения регистрации, непосредственно перед авторизацией, проверять, не закрыта ли сессия с идентификатором, который сохранен и в случае, если не закрыта, пихать пользователю cookie с правильным ID. Это дословно. Но в правильном ли направлении мыслю? Как бы вы решили такую проблему?
И еще, ковыряя шаблон main.register (который ковыряли до меня) обнаружил там среди вывода полей формы функцию bitrix_sessid_post(), при этом в дефолтном шаблоне ее не нашел. Можете подсказать, зачем она могла быть там?