BuddyPress: Mark Activity With Blocked Words as Spam
Automatically marks activity updates and comments that contain words from your blocklist as spam, so they never appear in the stream.
Opens WPIDE on
Code
if ( ! function_exists( 'buddypress' ) ) {
return;
}
// Words or phrases that mark an update as spam.
$wpide_bp_blocked_words = array( 'casino', 'free followers', 'crypto giveaway' );
add_action( 'bp_activity_before_save', function ( $activity ) use ( $wpide_bp_blocked_words ) {
if ( empty( $activity->content ) || ! empty( $activity->is_spam ) || user_can( (int) $activity->user_id, 'bp_moderate' ) ) {
return;
}
$text = wp_strip_all_tags( $activity->content );
foreach ( $wpide_bp_blocked_words as $word ) {
if ( preg_match( '/\b' . preg_quote( $word, '/' ) . '\b/iu', $text ) ) {
$activity->is_spam = 1;
return;
}
}
} );
Notes
Words are matched case-insensitively as whole words. Spammed items can be reviewed under Activity in wp-admin.
How to add this snippet
- Install WPIDE on your WordPress site (it is free) and open Code Snippets.
- Use snippet above adds it from the library in one click. Or copy the code into a new snippet with the same code type.
- It is added inactive: review the code and settings, then switch it on.