minishop2 - оформление заказа ТОЛЬКО для зарегистрированных

Добрый день!
Хотел бы сделать оформление заказа только для зарегистрированного (и авторизовавшегося) пользователя.

Регистрация и авторизация сейчас сделаны через социальные сети (сделано).

Из дополнительных (необходимых для заполнения) полей будет оставлен только номер телефона.

Большой ли объём работы потребуется для выполнения данной задачи?
Пытаюсь понять — стоит ли этим заниматься или оставить всё «как есть».
Игорь
26 октября 2021, 21:12
modx.pro
741
0

Комментарии: 11

Наумов Алексей
27 октября 2021, 09:16
+1
Да как бы вообще проще простого:

{if $_modx->user.id > 0}
    {'!msOrder' | snippet}
{else}
    Вам нужно авторизоваться для оформления заказа.
{/if}
    Игорь
    27 октября 2021, 21:12
    0
    Огромное спасибо!
    Тот случай, когда, оказывается, уже всё сделано…
    Я уже думал — придётся в поля заказа вбивать имя пользователя и его email.
    И «играться» с группами (при добавлении заказа).
    Тогда ещё один вопрос.
    Можно ограничиться недоступностью полей ИМЕНИ и ПОЧТЫ для невозможности их поменять (для АВТОРИЗОВАННЫХ пользователей)?
      Евгений
      28 октября 2021, 17:55
      0
      Надо просто запретить редактирование этих полей в форме заказа.
      1. Для блокирования элемента формы используется атрибут disabled. Добавление этого атрибута разрешает отображать элемент формы, но не позволяет изменять его.
      2. Для установки режима «только для чтения» используется атрибут readonly, он добавляется к тегу <_input_> или <_textarea_>.

      <_textarea cols=«30» rows=«4» disabled> Заблокированно</textarea_> или <_textarea readonly>Поле только для чтения</textarea_>
        iWatchYouFromAfar
        28 октября 2021, 22:37
        0
        А если нажму F12 и ручками уберу disabled и textarea?
          Евгений
          29 октября 2021, 07:32
          0
          Я написал, простой способ. А что бы не нашлись умные с F12. То данные о пользователе должны просто отображаются. А сами данные уже передаются по умолчанию в теле письмa :)
            iWatchYouFromAfar
            29 октября 2021, 13:35
            0
            Так ты предупреждай человека о возможных проблемах, если советуешь простой способ. :)
              Николай Савин
              29 октября 2021, 15:42
              0
              Ну тогда уж надо предупреждать что можно просто на action.php нужные запросы кидать и любые поля себе в заказе редактировать. Неважно — есть ли они на фронте, и уж тем более заблокированы ли они.
              На каждый проект можно свои дыры подобрать.
                iWatchYouFromAfar
                29 октября 2021, 15:49
                0
                Звучит крайне печально…
                  Николай Савин
                  29 октября 2021, 15:50
                  +2
                  Это мы поправим, раз уж разговор зашел.
                  Создал issue, чтобы не забыть.
                    Игорь
                    29 октября 2021, 20:50
                    0
                    в чанке 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}
                    Насколько всё это безопасно?
    Евгений
    30 октября 2021, 11:01
    0
    Игорь к информации: после внедрения на один сайт авторизации через соц. сети — количество регистраций упало в 10 раз, т.к. люди не хотели что их данные из соц сетей попадали на сайт.
      Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
      11