Outputting user data in group loop
- This topic has 5 replies, 2 voices, and was last updated 2 years, 5 months ago by
Peter.
-
AuthorPosts
-
November 11, 2022 at 11:52 PM #39081
Yasmine
ParticipantHello,
I am trying to output user data (avatar and display name) in an elementor meta-box group. In my group I have it set for multiple users to be selected, but no clone.
I have created a meta box group field. Then I have put this into a loop, which I then want to show in a post archive. So that I can output the associated users of that post.
1. Would this be a recommended appraoch?
2. I made a shortcode with a "foreach" statement that I output in the MB group, but as it is multiple, not cloneable, am I going wrong with my array?add_shortcode("former_team_member_get_name", function (){ global $post; $ftm_post_type = get_post_type($post->ID); if(is_singular() && "team" == $ftm_post_type) { $ftmn_field_id = rwmb_meta( "archived_team_users_group",'',$post->ID); foreach($ftmn_field_id as $user){ $ftmn_user_name = get_userdata(intval($user['former_team_member']))->display_name; return $ftmn_user_name;
I am really stuck with this, and have no idea even at what point I am going wrong. Or what documentation to use.
Your help would be hugely appreciated.
YasmineNovember 13, 2022 at 3:32 PM #39098Peter
ModeratorHello Yasmine,
Can you please share the code that creates the custom fields on your site? I recommend using this code to output a variable if you do not know what could be the value.
echo "<pre>"; print_r( $variable ); echo "</pre>";
November 13, 2022 at 9:42 PM #39109Yasmine
ParticipantHi Peter,
Yes of course:
$prefix = ''; 'name' => __( 'Archived Users', 'your-text-domain' ), 'id' => $prefix . 'archived_team_users_group', 'type' => 'group', 'fields' => [ [ 'name' => __( 'Former team members', 'your-text-domain' ), 'id' => $prefix . 'former_team_member', 'type' => 'user', 'field_type' => 'checkbox_list', 'select_all_none' => true, 'query_args' => [ 'role' => 'archive_team', ], ],
November 13, 2022 at 9:53 PM #39111Yasmine
ParticipantI tried with the
print_r
but did not fix it.I also found that if I use the shortcode directly on the template, it will show the first value. But using it via the meta box group widget shows nothing
November 14, 2022 at 1:18 AM #39118Yasmine
ParticipantUpdate:
Hi Peter,With the following code, I have got the avatar and photo to show within the metabox group on elementor. The first value correctly populates the name and avatar.
//For display_name add_shortcode("former_team_member_get_name", function (){ global $post; $ftm_post_type = get_post_type($post->ID); if(is_singular() && "team" == $ftm_post_type) { $group_id = rwmb_meta( 'archived_team_users_group','',$post->ID); foreach ($group_id as $x){ $f_user_id = $group_id['former_team_member'] ?? ''; foreach ($f_user_id as $user){ $ff_user = get_usermeta($user); } return sprintf($ff_user[1]); }}}); //For the avatar add_shortcode("former_team_member_get_avatar", function (){ global $post; $ftm_post_type = get_post_type($post->ID); if(is_singular() && "team" == $ftm_post_type) { $group_id = rwmb_meta( 'archived_team_users_group','',$post->ID); foreach ($group_id as $x){ $f_user_id = $group_id['former_team_member'] ?? ''; foreach ($f_user_id as $user){ $profile_pic = get_avatar_url($user); $main_html_markup = "<img src='$profile_pic'>"; }} return $main_html_markup; }});
However, when I try to use the metabox group field within a template that has values, it shows as blank.
How do I populate the metabox group correctly with shortcodes that then loop to show all the post values on a template?
November 14, 2022 at 10:03 PM #39129Peter
ModeratorHello Yasmine,
From the line to get the group value
$group_id = rwmb_meta( 'archived_team_users_group','', $post->ID );
you can replace the variable
$post->ID
with a real post ID like 123 and see if it works. If yes, there is a problem when getting the post ID above that line. If not, there is a problem when outputting the subfield value. Does that make sense?And the function
print_r()
orvar_dump()
helps you to output the field value for debugging, it's not a solution. -
AuthorPosts
- You must be logged in to reply to this topic.