BP_Akismet::check_activity( BP_Activity_Activity $activity )
Check if the activity item is spam or ham.
Description
See also
Parameters
- $activity
-
(Required) The activity item to check.
Source
File: bp-activity/classes/class-bp-akismet.php
public function check_activity( $activity ) { // By default, only handle activity updates and activity comments. if ( !in_array( $activity->type, BP_Akismet::get_activity_types() ) ) return; // Make sure last_activity is clear to avoid any confusion. $this->last_activity = null; // Build data package for Akismet. $activity_data = BP_Akismet::build_akismet_data_package( $activity ); // Check with Akismet to see if this is spam. $activity_data = $this->send_akismet_request( $activity_data, 'check', 'spam' ); // Record this item. $this->last_activity = $activity; // Store a copy of the data that was submitted to Akismet. $this->last_activity->akismet_submission = $activity_data; // Spam. if ( 'true' == $activity_data['bp_as_result'] ) { /** * Fires after an activity item has been proven to be spam, but before officially being marked as spam. * * @since BuddyPress 1.6.0 * * @param BP_Activity_Activity $activity The activity item proven to be spam. * @param array $activity_data Array of activity data for item including * Akismet check results data. */ do_action_ref_array( 'bp_activity_akismet_spam_caught', array( &$activity, $activity_data ) ); // Mark as spam. bp_activity_mark_as_spam( $activity, 'by_akismet' ); if ( Akismet::allow_discard() && ! empty( $activity_data['akismet_pro_tip'] ) && 'discard' === $activity_data['akismet_pro_tip'] ) { // If this is so spammy it's not worth your time, let's just delete it. if ( $activity->type === 'activity_comment' ) { bp_activity_delete_comment( $activity->item_id, $activity->id ); } else { bp_activity_delete( array( 'id' => $activity->id ) ); } } } // Update activity meta after a spam check. add_action( 'bp_activity_after_save', array( $this, 'update_activity_akismet_meta' ), 1, 1 ); }
Changelog
Version | Description |
---|---|
BuddyPress 1.6.0 | Introduced. |
Questions?
We're always happy to help with code or other questions you might have! Search our developer docs, contact support, or connect with our sales team.