BBP_Akismet::submit_post( int $post_id )
Submit a post for spamming or hamming
Description Description
Parameters Parameters
- $post_id
-
(Required)
Return Return
(array) Array of existing topic terms
Source Source
File: includes/extend/akismet.php
public function submit_post( $post_id = 0 ) { global $current_user, $current_site; // Innocent until proven guilty $request_type = 'ham'; $current_filter = current_filter(); // Check this filter and adjust the $request_type accordingly switch ( $current_filter ) { // Mysterious, and straight from the can case 'bbp_spammed_topic' : case 'bbp_spammed_reply' : $request_type = 'spam'; break; // Honey-glazed, a straight off the bone case 'bbp_unspammed_topic' : case 'bbp_unspammed_reply' : $request_type = 'ham'; break; // Possibly poison... default : return; } // Setup some variables $post_id = (int) $post_id; // Make sure we have a post $_post = get_post( $post_id ); // Bail if get_post() fails if ( empty( $_post ) ) { return; } // Bail if we're spamming, but the post_status isn't spam if ( ( 'spam' === $request_type ) && ( bbp_get_spam_status_id() !== $_post->post_status ) ) { return; } // Pass title & content together into comment content $_post_content = trim( $_post->post_title . "\n\n" . $_post->post_content ); // Set some default post_data $post_data = array( 'comment_approved' => $_post->post_status, 'comment_author' => $_post->post_author ? get_the_author_meta( 'display_name', $_post->post_author ) : get_post_meta( $post_id, '_bbp_anonymous_name', true ), 'comment_author_email' => $_post->post_author ? get_the_author_meta( 'email', $_post->post_author ) : get_post_meta( $post_id, '_bbp_anonymous_email', true ), 'comment_author_url' => $_post->post_author ? bbp_get_user_profile_url( $_post->post_author ) : get_post_meta( $post_id, '_bbp_anonymous_website', true ), 'comment_content' => $_post_content, 'comment_date' => $_post->post_date, 'comment_ID' => $post_id, 'comment_post_ID' => $_post->post_parent, 'comment_type' => $_post->post_type, 'permalink' => get_permalink( $post_id ), 'user_ID' => $_post->post_author, 'user_ip' => get_post_meta( $post_id, '_bbp_author_ip', true ), 'user_role' => $this->get_user_roles( $_post->post_author ), ); // Use the original version stored in post_meta if available $as_submitted = get_post_meta( $post_id, '_bbp_akismet_as_submitted', true ); if ( $as_submitted && is_array( $as_submitted ) && isset( $as_submitted['comment_content'] ) ) { $post_data = array_merge( $post_data, $as_submitted ); } // Add the reporter IP address $post_data['reporter_ip'] = bbp_current_author_ip(); // Add some reporter info if ( is_object( $current_user ) ) { $post_data['reporter'] = $current_user->user_login; } // Add the current site domain if ( is_object( $current_site ) ) { $post_data['site_domain'] = $current_site->domain; } // Place your slide beneath the microscope $post_data = $this->maybe_spam( $post_data, 'submit', $request_type ); // Manual user action if ( isset( $post_data['reporter'] ) ) { // What kind of action switch ( $request_type ) { // Spammy case 'spam' : if ( 'topic' === $post_data['comment_type'] ) { /* translators: %s: reporter name */ $message = sprintf( esc_html__( '%s reported this topic as spam', 'bbpress' ), $post_data['reporter'] ); } elseif ( 'reply' === $post_data['comment_type'] ) { /* translators: %s: reporter name */ $message = sprintf( esc_html__( '%s reported this reply as spam', 'bbpress' ), $post_data['reporter'] ); } else { /* translators: 1: reporter name, 2: comment type */ $message = sprintf( esc_html__( '%1$s reported this %2$s as spam', 'bbpress' ), $post_data['reporter'], $post_data['comment_type'] ); } $this->update_post_history( $post_id, $message, 'report-spam' ); update_post_meta( $post_id, '_bbp_akismet_user_result', 'true' ); update_post_meta( $post_id, '_bbp_akismet_user', $post_data['reporter'] ); break; // Hammy case 'ham' : if ( 'topic' === $post_data['comment_type'] ) { /* translators: %s: reporter name */ $message = sprintf( esc_html__( '%s reported this topic as not spam', 'bbpress' ), $post_data['reporter'] ); } elseif ( 'reply' === $post_data['comment_type'] ) { /* translators: %s: reporter name */ $message = sprintf( esc_html__( '%s reported this reply as not spam', 'bbpress' ), $post_data['reporter'] ); } else { /* translators: 1: reporter name, 2: comment type */ $message = sprintf( esc_html__( '%1$s reported this %2$s as not spam', 'bbpress' ), $post_data['reporter'], $post_data['comment_type'] ); } $this->update_post_history( $post_id, $message, 'report-ham' ); update_post_meta( $post_id, '_bbp_akismet_user_result', 'false' ); update_post_meta( $post_id, '_bbp_akismet_user', $post_data['reporter'] ); // @todo Topic term revision history break; // Possible other actions default : break; } } do_action( 'bbp_akismet_submit_' . $request_type . '_post', $post_id, $post_data['bbp_akismet_result'] ); }
Changelog Changelog
Version | Description |
---|---|
2.0.0 | Introduced. |