Are you using the BP Private Message Rate Limiter plugin to limit the number of private messages a user can send on a BuddyPress site during a given duration. If yes, then this guide will help you to set different limits on the messages for different user roles.
Rate Limit The Number of Private Messages:-
add_filter( 'bp_rate_limit_pm_count', 'devb_custom_private_message_limit_count', 10, 2 );
function devb_custom_private_message_limit_count( $count, $user_id ) {
if( ! $user_id )
$user_id = get_current_user_id ();
if( user_can( $user_id, 'create_users' ) ) //admin
$count = 10;
elseif( user_can( $user_id, 'moderate_comments' ) )
$count = 8; //for editors
elseif( user_can( $user_id, 'edit_published_posts' ) )
$count = 6; //for authors
elseif( user_can( $user_id, 'edit_posts' ) )
$count = 6; //for Contributors
elseif( user_can( $user_id, 'read' ) )
$count = 6; //for Subscriber
return $count;
}
You can put the above code in bp-custom.php
Changing the allowed duration for different user types
add_filter( 'bp_rate_limit_pm_throttle_duration', 'devb_custom_private_message_throttle_duration', 10, 2 );
function devb_custom_private_message_throttle_duration( $duration, $user_id ) {
if( ! $user_id )
$user_id = get_current_user_id ();
if( user_can( $user_id, 'create_users' ) ) //admin
$duration = 2;// how many mins
elseif( user_can( $user_id, 'moderate_comments' ) )
$duration = 4; //for editors
elseif( user_can( $user_id, 'edit_published_posts' ) )
$duration = 6; //for authors
elseif( user_can( $user_id, 'edit_posts' ) )
$duration = 8; //for Contributors
elseif( user_can( $user_id, 'read' ) )
$duration = 10; //for Subscriber
return $duration;
}
You can use the above code to set different limits for different User types based on the WordPress user roles.