В Moodle есть общий запрос на отдых core_user_get_user, но он работает с определенным полем: id, fullname, email и т.д. Можно ли создать плагин для подтягивания пользователя по необязательным полям, например скайп?
Я пытаюсь использовать core_user_get_user с критериями[0][key]=skype&criteria[0][value]=value, но это не работает





Вам нужно будет создать плагин веб-сервиса
Документация для разработчиков здесь
https://moodledev.io/docs/apis/subsystems/external/writing-a-service
Для начала ознакомьтесь с функциями Moodle в /user/externallib.php.
Есть 3 существующие функции Moodle
get_users_by_field - основной кодget_users_by_field_parameters - входящие параметрыget_users_by_field_returns - возвращаемые параметрыЗатем создайте локальный плагин для вашего нового веб-сервиса.
https://moodledev.io/docs/apis/plugintypes/local
Как минимум, вам понадобятся следующие файлы
/local/mypluginname/version.php
/local/mypluginname/lang/en/local_mypluginname.php
Файл сервисов, чтобы сообщить Moodle, где находится код вашего веб-сервиса.
/local/mypluginname/db/services.php
И ваш код веб-сервиса в классе
/local/mypluginname/classes/external/get_user_by_custom_field.php
Классу понадобятся 3 функции
execute - основной кодexecute_parameters - входящие параметрыexecute_return - возвращаемые параметрыПодробнее см. https://moodledev.io/docs/apis/subsystems/external/writing-a-service.