Source View: akismet_spam_count_incr

To save our bandwidth, we show only a snippet of code around each occurence of the hook. View complete file in SVN (without highlighting).

Understanding Source Code

The best way to understand what a hook does is to look at where it occurs in the source code.

  • Action hooks look like this: do_action( "hook_name" )
  • Filter hooks look like this: apply_filters( "hook_name", "what_to_filter" ).

Remember, this hook may occur in more than one file. Moreover, the hook's context may change from version to version.

Source View

This hook occurs 2 times in this file.

Line Code
191                // akismet_spam_count will be incremented later by comment_is_spam()
192                self::$last_comment_result = 'spam';
193
194                $discard = ( isset( $commentdata['akismet_pro_tip'] ) && $commentdata['akismet_pro_tip'] === 'discard' && self::allow_discard() );
195
196                do_action( 'akismet_spam_caught', $discard );
197
198                if ( $discard ) {
199                     // akismet_result_spam() won't be called so bump the counter here
200                     if ( $incr = apply_filters('akismet_spam_count_incr', 1) )
201                          update_option( 'akismet_spam_count', get_option('akismet_spam_count') + $incr );
202                     $redirect_to = isset( $_SERVER['HTTP_REFERER'] ) ? $_SERVER['HTTP_REFERER'] : get_permalink( $post );
203                     wp_safe_redirect( esc_url_raw( $redirect_to ) );
204                     die();
205                }
206           }
207           
208           // if the response is neither true nor false, hold the comment for moderation and schedule a recheck
209           if ( 'true' != $response[1] && 'false' != $response[1] ) {
 
Line Code
825      // filter handler used to return a spam result to pre_comment_approved
826      public static function last_comment_status( $approved, $comment ) {
827           // Only do this if it's the correct comment
828           if ( is_null(self::$last_comment_result) || ! self::matches_last_comment( $comment ) ) {
829                self::log( "comment_is_spam mismatched comment, returning unaltered $approved" );
830                return $approved;
831           }
832
833           // bump the counter here instead of when the filter is added to reduce the possibility of overcounting
834           if ( $incr = apply_filters('akismet_spam_count_incr', 1) )
835                update_option( 'akismet_spam_count', get_option('akismet_spam_count') + $incr );
836
837           return self::$last_comment_result;
838      }
839      
840      /**
841       * If Akismet is temporarily unreachable, we don't want to "spam" the blogger with
842       * moderation emails for comments that will be automatically cleared or spammed on
843       * the next retry.