Добавление пользователей в группы через автоматизацию пользовательских полей

:bookmark: Это руководство объясняет, как автоматически добавлять пользователей в группы на основе выбора ими пользовательского поля при регистрации или обновлении профиля.

:person_raising_hand: Требуемый уровень доступа: Администратор

Краткое содержание

  1. Создайте необходимые группы
  2. Настройте пользовательское поле для пользователей
  3. Создайте автоматизацию для добавления пользователей в группы
  4. Протестируйте настройку

Создание групп

Сначала создайте группы, в которые пользователи должны автоматически добавляться:

  1. Перейдите в административную панель вашего сайта
  2. Перейдите в раздел «Группы» в боковой панели администратора или посетите /admin/groups
  3. Нажмите «Новая группа» для каждой группы, которую хотите создать
  4. Убедитесь, что для каждой группы указано «Полное имя», так как скрипт автоматизации использует его

:information_source: Скрипт автоматизации сопоставляет значение пользовательского поля пользователя с полным именем группы. Убедитесь, что полное имя каждой группы точно соответствует соответствующему варианту пользовательского поля (например, если вариант в выпадающем списке — «cat», то полное имя группы должно быть «cat»).

Настройка пользовательского поля для пользователей

Далее создайте пользовательское поле, из которого пользователи будут выбирать:

  1. Перейдите в административную панель вашего сайта
  2. Перейдите в раздел «Поля пользователей» в секции «Сообщество» боковой панели администратора или посетите /admin/config/user-fields
  3. Нажмите «Добавить поле пользователя»
  4. Настройте поле с соответствующими вариантами

Вот пример того, как может выглядеть ваше пользовательское поле:

:information_source: Используйте тип поля выпадающий список с заранее определенными вариантами, которые точно соответствуют полным именам ваших групп. Поля свободного текста могут привести к несоответствиям. Если используется тип поля подтверждение, значение будет «true» или «false», поэтому полное имя группы должно быть установлено соответствующим образом.

Создание автоматизации

Теперь настройте автоматизацию для добавления пользователей в группы на основе их выбора в пользовательском поле:

  1. Перейдите в административную панель вашего сайта
  2. Перейдите в раздел «Плагины > Автоматизация» в боковой панели администратора или посетите /admin/plugins/automation
  3. Нажмите «Добавить автоматизацию»
  4. Выберите скрипт «Добавить пользователя в группу через пользовательское поле»
  5. Выберите триггер:
    • «Первый вход пользователя» для добавления пользователей в группы при регистрации
    • «Периодический» для запуска по расписанию, позволяя пользователям со временем менять группы
  6. Выберите ваше пользовательское поле из выпадающего списка
  7. Настройте параметры автоматизации и обязательно включите её

Вот пример того, как может выглядеть ваша настройка автоматизации:

:mega: Автоматизация включает выпадающий список для выбора ваших существующих пользовательских полей, что упрощает настройку и снижает вероятность ошибок.

Тестирование настройки

Чтобы убедиться, что всё работает правильно:

  1. Зарегистрируйтесь как новый пользователь или обновите профиль существующего пользователя
  2. Выберите вариант из созданного вами пользовательского поля
  3. Завершите процесс регистрации или обновления профиля

Вот пример того, как пользовательское поле может отображаться при регистрации:

После запуска автоматизации вы должны увидеть, что пользователь добавлен в соответствующую группу:

Часто задаваемые вопросы

В: Может ли эта автоматизация добавлять пользователей в основные группы?
О: По умолчанию эта автоматизация добавляет пользователей во вторичные группы. Чтобы установить группу как основную, перейдите на страницу настроек «Управление > Членство» группы и выберите «Автоматически устанавливать как основную группу».

В: Как часто запускается автоматизация, если я выберу триггер «Периодический»?
О: Вы можете задать частоту при создании автоматизации. Выберите расписание, которое лучше всего соответствует потребностям вашего сообщества.

В: Что произойдет, если пользователь изменит свой выбор в пользовательском поле?
О: Если вы настроили периодическую автоматизацию, она добавит пользователя в новую группу на основе его обновленного выбора при следующем запуске. Однако автоматизация не удаляет пользователей из их предыдущей группы — она только добавляет. Вам потребуется вручную управлять удалением из групп при необходимости.

В: Как автоматизация узнает, в какую группу добавить пользователя?
О: Автоматизация сопоставляет значение пользовательского поля пользователя с полным именем каждой группы. В настройках автоматизации нет явного выбора группы — сопоставление происходит автоматически на основе полного имени.

Дополнительные ресурсы

15 лайков

Эта автоматизация теперь доработана: добавлено выпадающее меню для выбора ваших существующих пользовательских полей пользователя. :partying_face:

Больше не нужно рыться в JSON пользовательских полей пользователя в поисках идентификатора или исправлять неловкие опечатки, которые всё портят. Всё просто: очень плавный и дружелюбный интерфейс. :sunglasses:

7 лайков

Пожалуйста, автоматизация может добавлять пользователей только во вторичную группу. Что мне делать, если я хочу добавить его в основную группу?

Я думаю, это можно настроить на странице управления/настроек членства в группе, где вы можете выбрать опцию «Автоматически устанавливать в качестве основной группы».

2 лайка

Что я упускаю?

Я сделал всё это, но после тестирования это работает не так, как ожидалось.

Нужно ли сопоставлять «полное имя» группы с опцией имени автоматизации? То есть я не вижу опции, чтобы выбрать группу, к которой пользователь должен быть добавлен при срабатывании события.

Либо я упускаю какой-то шаг, либо что-то не сходится в моей голове.

2 лайка
3 лайка

Спасибо. Я удалил все предыдущие настройки, синхронизировал поля имени и протестировал регистрацию. Успеха всё ещё нет.

Подтвердите, пожалуйста: вы используете группу «полное имя», а не @имя?

Кроме того, я изменил автоматизацию на повторяющуюся, чтобы мог запускать её вручную, но это тоже не сработало.

Я только что создал всё с нуля:

  1. Моё пользовательское поле «Команда питомцев»:

  2. Новые группы: название «cat-lovers», полное имя «cat» и название «dog-lovers», полное имя «dog»

  3. Автоматизация: (я выбрал интервал в 1 минуту для быстрого тестирования)

  4. Тестирование

    1. Выбор «cat» для поля «Команда питомцев» в настройках профиля
    2. Проверка членства в группе:
    3. Выбор «dog» для поля «Команда питомцев» в настройках профиля
    4. Проверка членства в группе:
2 лайка

Изначально я планировал создать новую тему «Как фильтровать регистрацию пользователей: до/после», чтобы все новые пользователи с определённого дня попадали в нужную группу.

Однако я нашёл эту тему и понял, что это именно то, что мне нужно.

Разница между моим случаем и вашим примером (ещё раз спасибо) заключается в том, что мой вариант, возможно, ещё проще: нет необходимости в выборе нескольких вариантов, пользователю достаточно поставить галочку в поле «подтверждение» :white_check_mark:, и это поле автоматически добавит пользователя в нужную группу.

1 лайк

Также я вижу тестового пользователя и поле X = true в профиле пользователя, так что при регистрации всё работает.

Как указано выше, в моём случае у пользователя есть только опция cat, и она назначается по клику на «подтверждение»; это требование моно-фильтра.

Возможно, я попробую принудительно использовать выпадающий список вместо этого и посмотрю, сработает ли это.

Я также настроил автоматизацию с использованием пользовательского поля подтверждения.

1 лайк

Всё, я изменил пользовательское поле на выпадающий список с единственным вариантом, и всё заработало.

Я не могу воспроизвести! :grinning:

1 лайк

Это помогает? Может быть, вы сможете заметить разницу

Поле пользователя


Автоматизация

Группа

2 лайка

Ваше название группы — «true»?

Да, он должен совпадать со значением пользовательского поля. Поле подтверждения может принимать значение «true» или «false».

3 лайка

Хорошо, именно это я и предполагал.

Получается, что вы ограничены одной группой под названием «true» и больше никогда не сможете использовать этот подход с «подтверждением».

Пока я буду использовать выпадающий список, так как, возможно, мне придется менять фильтр групп раз в год, то есть создавать отдельную группу для каждого года.

Наконец, если я могу предложить разработчикам автоматизации рассмотреть возможность добавления более явного шага и, соответственно, поля для указания целевой группы пользователей, на которую направлен ваш фильтр, поскольку эта подразумеваемая часть настройки вызвала у меня (и, вероятно, у других) много путаницы и потратила много времени.

Спасибо за всю вашу помощь и разъяснения @Moin

3 лайка

Я заметил несколько ошибок в документации:

На самом деле поля пользователей находятся в разделе «Сообщество» боковой панели администратора.

Автоматизация реализована в виде плагина, поэтому вы найдете ее в разделе «Плагины», а не в разделе «Настроить».

В целом, скриншоты и навигация кажутся немного устаревшими. Кроме того, общепринятым термином является «пользовательское поле» (custom user field), но в этом руководстве часто используется «пользовательское поле» (user custom field).

Некоторое время назад я предложил альтернативную версию, которая учитывает большинство этих моментов. Я делюсь ею здесь, чтобы она могла помочь тем, кто сталкивается с трудностями в этих аспектах.

Мой черновик

:bookmark: Это руководство объясняет, как автоматически добавлять пользователей в группы на основе их выбора пользовательского поля при регистрации или обновлении профиля.

:person_raising_hand: Требуемый уровень доступа пользователя: Администратор

Краткое содержание

  1. Настройка пользовательского поля
  2. Создание необходимых групп
  3. Создание автоматизации для добавления пользователей в группы
  4. Проверка настройки

Настройка пользовательского поля

Сначала создайте пользовательское поле, из которого пользователи будут выбирать:
(Также существует подробное руководство по пользовательским полям)

  1. Перейдите в административную панель вашего сайта
  2. Перейдите в раздел «Поля пользователей», используя ссылку в разделе «Сообщество» боковой панели администратора или посетив /admin/config/user-fields
  3. Нажмите «Добавить поле пользователя»
  4. Настройте поле с соответствующими параметрами

Вот пример того, как может выглядеть ваше пользовательское поле:

:information_source: Автоматизация добавляет пользователей в группу, если их ввод в пользовательском поле точно совпадает с полным именем группы. Для обеспечения точности используйте выпадающий список с заранее определенными вариантами, которые точно соответствуют именам групп. Поля свободного текста могут привести к несоответствиям. Если используется поле подтверждения, группы должны быть названы ‘true’ или ‘false’.

Создание групп

Далее создайте группы, в которые пользователи должны автоматически добавляться:
(Также существует подробное руководство по созданию групп)

  1. Перейдите в раздел «Группы», используя ссылку в боковой панели администратора или добавив /g или /groups к URL вашего форума.
  2. Нажмите «Новая группа» для каждой группы, которую вы хотите создать
  3. Убедитесь, что для каждой группы указано «Полное имя», так как скрипт автоматизации использует его

:information_source: Скрипт автоматизации использует полное имя группы, поэтому убедитесь, что оно точно совпадает с вводом в пользовательском поле.

Создание автоматизации

Теперь настройте автоматизацию для добавления пользователей в группы на основе их выбора в пользовательском поле:

  1. Перейдите в административную панель вашего сайта
  2. Перейдите в раздел Плагины > Автоматизация
  3. Нажмите «Добавить автоматизацию»
  4. Выберите скрипт «Добавить пользователя в группу через пользовательское поле»
  5. Укажите имя
  6. Выберите триггер:
    • «Первый вход пользователя» для добавления пользователей в группы при регистрации
    • «Повторяющийся» для запуска по расписанию, что позволяет пользователям менять группы со временем
  7. Выберите ваше пользовательское поле из выпадающего списка
  8. Не забудьте включить автоматизацию

Вот пример того, как может выглядеть настройка автоматизации:

Проверка настройки

Чтобы убедиться, что все работает правильно:

  1. Зарегистрируйтесь как новый пользователь или обновите профиль существующего пользователя
  2. Выберите вариант из созданного вами пользовательского поля
  3. Завершите процесс регистрации или обновления профиля

Вот пример того, как пользовательское поле может выглядеть при регистрации:

После запуска автоматизации вы должны увидеть, что пользователь добавлен в соответствующую группу:

Часто задаваемые вопросы

В: Может ли эта автоматизация добавлять пользователей в основные группы?
О: По умолчанию эта автоматизация добавляет пользователей во вторичные группы. Чтобы установить группу как основную, перейдите на страницу настроек «Управление > Членство» группы и выберите «Автоматически устанавливать как основную группу».

В: Как часто запускается автоматизация, если я выберу триггер «Повторяющийся»?
О: Вы можете установить частоту при создании автоматизации. Выберите расписание, которое лучше всего соответствует потребностям вашего сообщества.

В: Что произойдет, если пользователь изменит свой выбор в пользовательском поле?
О: Если вы настроили повторяющуюся автоматизацию, она обновит членство пользователя в группе на основе его нового выбора при следующем запуске.

В: Могу ли я использовать более одной автоматизации на основе полей подтверждения?
О: Да! Хотя полные имена обеих групп должны быть ‘true’ или ‘false’, вы можете создать несколько групп с разными именами для их различения. При настройке автоматизации просто выберите соответствующее пользовательское поле для каждой из них.

Дополнительные ресурсы

Если бы я обновил документацию сейчас, я также добавил бы, что существуют проблемы при использовании пользовательского поля с множественным выбором

4 лайка

У меня настроена такая система, и я заметил, что когда пользователь меняет своё предпочтение в выпадающем списке «Пользователь», это не удаляет его из первоначально выбранной группы, но добавляет в новую выбранную группу. Это ожидаемое поведение?

То есть, после того как пользователь добавлен в группу, есть ли способ затем удалить его из группы через автоматизацию?

1 лайк

Система по-прежнему совершенно не работает у меня, когда пользовательское поле представляет собой выпадающий список с несколькими вариантами

1 лайк