You can't get all user metadata(profile) data from people column. It has to be retrieved from User profile properties.
(function($){ $(document).ready(function(){ // Ensure that the SP.UserProfiles.js file is loaded before the custom code runs. SP.SOD.executeOrDelayUntilScriptLoaded(loadUserData, 'SP.UserProfiles.js'); }); var userProfileProperties = []; //Array containing domain\usernames of multiple users. You can get the usersnamesusernames any way you want. var targerUsers = ["i:0#.f|membership|[email protected]","i:0#.f|membership|[email protected]"]; //If you are on On-Premise: //var targerUsers = ["domain\\username","domain\\demouser1"]; function loadUserData(){ //Get Current Context var clientContext = new SP.ClientContext.get_current(); //Get Instance of People Manager Class var peopleManager = new SP.UserProfiles.PeopleManager(clientContext); //Property to fetch from the User Profile var propertyName = "PreferredName";"WorkPhone"; for(var i=0;i<targerUsers.length;i++){ //Create new instance of UserProfileProperty userProfileProperties[i] = peopleManager.getUserProfilePropertyFor(targerUsers[i], propertyName); } //Execute the Query. (No load method necessary) clientContext.executeQueryAsync(onSuccess, onFail); } function onSuccess() { var messageText = ""; for(var i=0;i<userProfileProperties.length;i++){ messageText += "\"Preffered Name\""\"WorkPhone\" property is " + userProfileProperties[i].get_value(); } alert(messageText); } function onFail(sender, args) { alert("Error: " + args.get_message()); } })(jQuery); CodeThe idea is while rendering body in CSR save user id's an array and on footer render call use this Array to create targetusers payload then make this call for all users at once. Code is taken from here slightly modified as per the above requirement. check it as needed.
Note: This applies to both SPO and on-premises.