1. Wordpress 4.8, WP-Recall 16.4.9
2. Некорректно работает запрет редактирования полей в профиле
Порядок воспроизведения ошибки:
1) установил чистый WordPress, тему не трогал (Twenty Seventeen дефолтная)
2) установил WP-Recall из раздела плагины (через поиск в магазине плагинов)
3) WP-Настройки - Общие - включил "Любой может зарегистрироваться"
4) WP-Recall - Поля профиля - добавил готовое поле "Имя":
---а) заголовок оставил как есть ("Имя")
---б) плейсхолдер заполнил ("Отображаемое имя")
---в) Pattern, Макс. кол-во знаков, подпись к полю - оставил пустыми
---г) обязательное поле - "нет"
---д) отображать для других пользователей - "да"
---е) редактируется только администрацией сайта - "да"
---ж) отображать в форме регистрации - "нет"
5) WP-Внешний вид - Виджеты - в колонку Blog Sidebar добавил виджет "Текст" и вписал в него [loginform]
6) Вышел из под админа, перешел на сайт и зарегистрировался как обычный пользователь
7) Под пользователем перешел в профиль, заполнил поле "Имя", нажал "Обновить"
8) После обновления страницы заполненное имя осталось в поле, само поле при этом не кликабельно (действует запрет редактирования)
9) Ничего не меняя в профиле жму еще раз "Обновить"
10) После обновления страницы заполненное имя исчезло и само поле стало кликабельно - доступно для заполнения (в этом и ошибка)
Проблему наблюдал на хостинге, на сайте с кучей плагинов. На этом сайте в форме авторизации не ставилась галочка "Запомнить". Счел это за какой-то конфликт плагинов, забил на нее и просто убрал эту галку через display:none;
Перед тем, как постить этот репорт воспроизвел ошибку с запрещенным полем профиля на локалке (Open Server), установив с нуля только WP и WP-Recall. Попутно обратил внимание, что проблема с установкой галочки "Запомнить" актуальна.
Еще раз хочу подчеркнуть, что и на хостинге и на локалке я выводил форму авторизации через виджет "Текст" и шорткод [loginform].
Буду рад исправлениям.
---д) отображать для других пользователей - "да"
---е) редактируется только администрацией сайта - "да"
- "редактируется только администрацией сайта" уберите
Но, я попытался повторить на этой версии плагина (16.4.9) - первый раз заполнить имя дало. сохранил. Поле стало не редактируемым.
Нажал обновить второй раз - (ничего не меняя) - поле не доступно для редактирования.
Ради интереса перешел на главную, снова в профиль и нажал обновить - поле "Имя" невозможно отредактировать повторно.
Проблемы не наблюдаю - работает как и надо.
С формой входа - разницы что это за форма (виджет, всплывающая или на отдельной странице (как раз шорткод логинформ)) - нет. Т.к. за это отвечает один кусок кода.
в форме авторизации не ставилась галочка "Запомнить".
- т.е. как это не ставилась галочка? Вы не смогли чекбокс поставить? У меня ставится
p.s. я бы разбирался с проблемами используя тестовый домен (чистый вп, никаких плагинов и тема twenty от разработчиков - тут вы все верно сделали) - но на нормальном хостинге, а не на локальном сервере. Ни опенсерверам ни денверам я не доверяю - т.к. по сути это сборки. И они работают в большинстве случаев с проблемами. Не первый раз сталкиваюсь с проблемами при их использовании.
Заведите тестовый поддомен на нормальном хостинге и пробуйте там.
Повторил все то же самое на хостинге (spaceweb).
Все точно так же, как и на локальном. При повторном нажатии на синюю кнопку "Обновить" - Имя исчезает, и чекбокс не ставится.
В личку скинул данные для входа.
В этот раз проверил на обоих браузерах (Chrome + Firefox), все то же самое. Обратил внимание еще на лишние
в форме авторизации. Из-за них поля формы отображаются не очень красиво, с прогалами.
Выбирайте не всплывающая форма, а форма в виджете - вы же виджетом пользуетесь:
5) WP-Внешний вид - Виджеты - в колонку Blog Sidebar добавил виджет "Текст" и вписал в него [loginform]
Доступ к вашему сайту я не просил - я не буду заниматься вашим сайтом. По рекомендациям из этой темы делайте самостоятельно. Или наймите администратора на свой сайт - который будет техническими вопросами заниматься.
Доступ к вашему сайту я не просил - я не буду заниматься вашим сайтом.
Ссылка выше - это не коммерческий сайт (мой или чей-то еще), это тестовая площадка, которую я развернул сегодня утром на поддомене. Установил свежескачанный WordPress и сразу установил из WP-репо плагин WP-Recall. Больше ничего не устанавливал для чистоты эксперимента.
В решении проблемы есть некоторый прогресс.
Я выяснил, что не важно - какой тип формы выбран в Общих настройках (виджет, всплывающая или др, это влияет только на отображение), важно установить в сайдбар виджет, который называется "Панель управления". Я же устанавливал в сайдбар виджет "Текст" и вписывал в него шорткод [loginform] (изначально не подумал, что Панель управления - это форма реги/логина, название неинтуитивное). Один кусок кода отвечает или нет, но результат получился разный. В случае виджета "Панель управления" поля формы авторизации расположены как положено, без лишних отступов, а также, работает чекбокс "Запомнить". В случае виджета "Текст" - между полями прогалы и чекбокс не работает.
Теперь по поводу исчезающего имени в поле Имя в профиле. Удалось выяснить, что баг есть только если пользователь не админ. Когда я обновлял профиль будучи под админом - значение в поле сохранялось. Когда же я перезашел под пользователем, то ошибка снова проявилась - после повторного обновления профиля поле Имя само очищалось (касается любого доп. поля в профиле, не только Имя).
Повторные испытания проводил уже после обновления WP-Recall до последней версии (16.4.10). Из WP-репо скачивается 16.4.9.
p.s. давайте будем вежливы. Я не собирался садиться на шею. Безусловно, я хочу решить свои личные задачи, но и в ваших интересах довести продукт до идеального вида.
Антон сказал(а)
и чекбокс не работает
я вам скажу почему - потому что консорциум W3C запрещает на одной странице использовать более 1 раза ID. В случае с чекбоксом этих айдишников у чекбокса одинаковых два - один в реколлбаре, второй в шорткоде (форма входа логинформ)
Читаем описание шорткода
используется для вывода формы регистрации и входа на отдельной странице сайта. При этом в настройках плагина требуется указать, что форма будет выводится на отдельной странице.
что баг есть только если пользователь не админ
- так я и не админом проверял и не подтвердил.
Это хорошо что вы хотите разобраться.
По багу - не подтверждаю, а по настройке - если вы ее выполняете неверно - обращайтесь на форум - подскажем. Но сразу присылать доступы в личку - я посчитал это перекладыванием своей проблемы на чужие спины.
После установки WP и WP-Recall я включил "Любой может зарегистрироваться" и добавил поле Имя в профиль, настройки ниже.
Что я не так сделал или что нужно сделать дополнительно, чтобы от лица пользователя поле Имя не очищалось при повторном нажатии кнопки "Обновить" в профиле?
upd
Пользователь - роль Автор, которая стоит в WP по умолчанию для новых зарегистрировавшихся.
Антон сказал(а)
Что я не так сделал или что нужно сделать дополнительно, чтобы от лица пользователя поле Имя не очищалось при повторном нажатии кнопки "Обновить" в профиле?
- я именно так и повторил
- и не увидел проблемы:
Otshelnik-Fm сказал(а)
Но, я попытался повторить на этой версии плагина (16.4.9) - первый раз заполнить имя дало. сохранил. Поле стало не редактируемым.
Нажал обновить второй раз - (ничего не меняя) - поле не доступно для редактирования.
Ради интереса перешел на главную, снова в профиль и нажал обновить - поле "Имя" невозможно отредактировать повторно.
Проблемы не наблюдаю - работает как и надо.
Как вариант - отключите Да:
Otshelnik-Fm сказал(а)
- "редактируется только администрацией сайта" уберите
Тест на внимательность я провалил. Я то создавал текстовое поле, а у вас имя first_name. Это не отображаемое имя - поле с отображаемым именем - Meta-key: display_name
- его вам и нужно использовать.
Но сейчас я проверил и на этом типе first_name. Не стирается ничего. Единственный баг - это то что поле не видит опции "редактируется только администрацией сайта" - т.е. доступно всегда для правки.
Но ничего не стирается. У вас произвольных полей в профиле может много - и вы в лимиты передачи упираетесь? У меня 23 поля - и ниодно не стирается.
Нет, я добавлял всего одно - Имя. Я выяснил - в чем проблема.
Дело в том, что поля в профиль можно добавить двумя способами.
Я добавлял способом номер 2 - перетаскивая заготовку drag&drop,
а вы добавили способом номер 1 - вписав данные в раскрытую форму поля-шаблона.
Так вот при способе 1 проблем нет, а при способе 2 - есть.
Фамилия - это last_name метакей. Вы же скрин в 10 м сообщении с first_name привели. Я и проверил и отписал в 12м сообщении с first_name.
Проблему стирания я не вижу.
Но вам совет - отображаемое имя вы должны выбрать display_name - именно его многие плагины и шаблоны выводят и на него ориентируются. Просто в некоторых местах - если вы выберите не его - у юзера будет отсутствовать имя.
Антон сказал(а)
Именно это я и имел в виду, создавая данный топик. Только сформулировал иначе, по внешним признакам.
но вы еще описали его как
После обновления страницы заполненное имя исчезло
чтобы от лица пользователя поле Имя не очищалось при повторном нажатии кнопки "Обновить" в профиле?
- ничего же не очищается. Или у вас именно очищается? т.е. пропадает
Да, именно пропадает. Касается это только родных user-полей. Custom-поля типа текст не исчезают.
И происходит это, если именно обновлять профиль синей кнопкой, а не обновлять страницу браузера.
В моем случае нужны user-поля Имя и Фамилия, при этом с запретом на редактирование.
А отображаемое имя - это отдельная история, с которой я уже разобрался (вносил некоторые правки в модуль WP Social Login и в user.php, чтобы display_name автоматически составлялось из first_name и last_name, а в случае их отсутствия - из user_login)