Skip to content

Instantly share code, notes, and snippets.

Last active February 3, 2020 16:50
What would you like to do?
I was writing my second BuddyPress tutorial for when i realized it could be helpful for a community admin to restrict private messages to friends only...
/*** beginning of the code to paste in your functions.php ***/
function imath_pm_button_only_if_friends( $button ) {
if( is_super_admin() )
return $button;
if( 'is_friend' != friends_check_friendship_status( bp_displayed_user_id(), bp_loggedin_user_id() ) )
return false;
return $button;
add_filter( 'bp_get_send_message_button', 'imath_pm_button_only_if_friends', 10, 1 );
function imath_fillfield_only_if_friends() {
if( empty( $_GET['r'] ) )
if( is_super_admin() )
$path = esc_url( $_SERVER['REQUEST_URI'] );
$redirect = bp_core_get_root_domain() . $_SERVER['REDIRECT_URL'];
preg_match('/[\?r] *= *["\']?([^"\' ]*)[\& ]/is', $path, $match );
if( !empty( $match[1] ) ) {
$user_id = bp_core_get_userid( $match[1] );
if( 'is_friend' != friends_check_friendship_status( $user_id, bp_loggedin_user_id() ) )
bp_core_redirect( $redirect );
add_action( 'messages_screen_compose', 'imath_fillfield_only_if_friends' );
/*** end of the code to paste in your functions.php ***/
Copy link

georgio-1 commented Feb 28, 2017

Hi @imath
I tested the gist. The second part of the code doesn't work for me. A member can always send a message to a non-friend from the messages tab on the bar.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment