minishop2 - оформление заказа ТОЛЬКО для зарегистрированных
Добрый день!
Хотел бы сделать оформление заказа только для зарегистрированного (и авторизовавшегося) пользователя.
Регистрация и авторизация сейчас сделаны через социальные сети (сделано).
Из дополнительных (необходимых для заполнения) полей будет оставлен только номер телефона.
Большой ли объём работы потребуется для выполнения данной задачи?
Пытаюсь понять — стоит ли этим заниматься или оставить всё «как есть».
Хотел бы сделать оформление заказа только для зарегистрированного (и авторизовавшегося) пользователя.
Регистрация и авторизация сейчас сделаны через социальные сети (сделано).
Из дополнительных (необходимых для заполнения) полей будет оставлен только номер телефона.
Большой ли объём работы потребуется для выполнения данной задачи?
Пытаюсь понять — стоит ли этим заниматься или оставить всё «как есть».
Комментарии: 11
Да как бы вообще проще простого:
{if $_modx->user.id > 0}
{'!msOrder' | snippet}
{else}
Вам нужно авторизоваться для оформления заказа.
{/if}
Огромное спасибо!
Тот случай, когда, оказывается, уже всё сделано…
Я уже думал — придётся в поля заказа вбивать имя пользователя и его email.
И «играться» с группами (при добавлении заказа).
Тогда ещё один вопрос.
Можно ограничиться недоступностью полей ИМЕНИ и ПОЧТЫ для невозможности их поменять (для АВТОРИЗОВАННЫХ пользователей)?
Тот случай, когда, оказывается, уже всё сделано…
Я уже думал — придётся в поля заказа вбивать имя пользователя и его email.
И «играться» с группами (при добавлении заказа).
Тогда ещё один вопрос.
Можно ограничиться недоступностью полей ИМЕНИ и ПОЧТЫ для невозможности их поменять (для АВТОРИЗОВАННЫХ пользователей)?
Надо просто запретить редактирование этих полей в форме заказа.
1. Для блокирования элемента формы используется атрибут disabled. Добавление этого атрибута разрешает отображать элемент формы, но не позволяет изменять его.
2. Для установки режима «только для чтения» используется атрибут readonly, он добавляется к тегу <_input_> или <_textarea_>.
<_textarea cols=«30» rows=«4» disabled> Заблокированно</textarea_> или <_textarea readonly>Поле только для чтения</textarea_>
1. Для блокирования элемента формы используется атрибут disabled. Добавление этого атрибута разрешает отображать элемент формы, но не позволяет изменять его.
2. Для установки режима «только для чтения» используется атрибут readonly, он добавляется к тегу <_input_> или <_textarea_>.
<_textarea cols=«30» rows=«4» disabled> Заблокированно</textarea_> или <_textarea readonly>Поле только для чтения</textarea_>
А если нажму F12 и ручками уберу disabled и textarea?
Я написал, простой способ. А что бы не нашлись умные с F12. То данные о пользователе должны просто отображаются. А сами данные уже передаются по умолчанию в теле письмa :)
Так ты предупреждай человека о возможных проблемах, если советуешь простой способ. :)
Ну тогда уж надо предупреждать что можно просто на action.php нужные запросы кидать и любые поля себе в заказе редактировать. Неважно — есть ли они на фронте, и уж тем более заблокированы ли они.
На каждый проект можно свои дыры подобрать.
На каждый проект можно свои дыры подобрать.
Звучит крайне печально…
Это мы поправим, раз уж разговор зашел.
Создал issue, чтобы не забыть.
Создал issue, чтобы не забыть.
в чанке tpl.msOrder написал вот это (для email):
{if $field=='email'}
<input type="text" id="{$field}" placeholder="{('ms2_frontend_' ~ $field) | lexicon}"
name="{$field}" value="{$form[$field]}"
class="form-control{($field in list $errors) ? ' error' : ''}" readonly>
{/if}
Насколько всё это безопасно?
Игорь к информации: после внедрения на один сайт авторизации через соц. сети — количество регистраций упало в 10 раз, т.к. люди не хотели что их данные из соц сетей попадали на сайт.
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.