I’m using the code snippet to hide profile fields using member types, like the one in this post, https://buddydev.com/using-buddypress-member-types-as-profile-field-visibility-levels/. But it doesn’t work on users who are not logged in. How can I hide the fields from non-logged in users as well?
Here is the code I used in my bp-custom.php
//Add visibilty by member type add_filter( 'bp_xprofile_get_visibility_levels', 'buddydev_add_member_type_profile_visibility' ); function buddydev_add_member_type_profile_visibility( $visibilities ) { $member_types = bp_get_member_types( array(), 'object' ); // If there is no registered member type, return the original visibilities. if ( empty( $member_types ) ) { return $visibilities; } // Add our member type as visibility levels. foreach ( $member_types as $member_type => $member_type_object ) { $visibilities[ $member_type ] = array( 'id' => $member_type, 'label' => $member_type_object->labels['singular_name'], ); } return $visibilities; } function buddydev_get_hidden_visibility_types_for_user( $hidden_levels, $displayed_user_id, $current_user_id ) { $member_types = bp_get_member_types(); // If user is not logged in // All member type visibilities will be hidden. if ( ! is_user_logged_in() ) { $hidden_levels = array_merge( $hidden_levels, $member_types ); } elseif ( ( $displayed_user_id == $current_user_id ) || is_super_admin( $current_user_id ) ) { // Do not hide anything on own profile or viewed by super admin. } else { // User is logged in and viewing other user's profile. $logged_member_types = bp_get_member_type( $current_user_id, false ); // except current user's member type, all other levels will be hidden. if ( $logged_member_types ) { $member_types = array_diff( $member_types, $logged_member_types ); } $hidden_levels = array_merge( $hidden_levels, $member_types ); } return $hidden_levels; } add_filter( 'bp_xprofile_get_hidden_field_types_for_user', 'buddydev_get_hidden_visibility_types_for_user', 10, 3 );
Hi Keith,
On a cursory look, It seems all good to me.Regards
Brajesh
Viewing 4 posts - 1 through 4 (of 4 total)
The topic ‘Profile Visibility for non-logged in users’ is closed to new replies.
This topic is: not resolved