1. Для получения данных используйте функции wp_remote_get(), wp_remote_retrieve_body(),
2. Для парсинга данных из json используйте json_decode()
3. Во избежание множественных запросов используйте transients cache для кеширования ответа
Документация по всем упомянутым функциям есть в Кодексе.
Попробуйте InstantCMS. Доработать скорее всего придется под проект, но многое есть что называется из коробки, включая разделение данных профилей по группам. Т.е. консультант будет иметь свои поля, клиент свои. И тоже самое с правами доступа.