Menu Adam R Brown

WP hooks navigation: Home/browseActions indexFilters index

Source View: comment_duplicate_trigger

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.

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

Source View

Line Code
682      extract($commentdata, EXTR_SKIP);
683
684      // Simple duplicate check
685      // expected_slashed ($comment_post_ID, $comment_author, $comment_author_email, $comment_content)
686      $dupe = $wpdb->prepare( "SELECT comment_ID FROM $wpdb->comments WHERE comment_post_ID = %d AND comment_parent = %s AND comment_approved != 'trash' AND ( comment_author = %s ", wp_unslash( $comment_post_ID ), wp_unslash( $comment_parent ), wp_unslash( $comment_author ) );
687      if ( $comment_author_email )
688           $dupe .= $wpdb->prepare( "OR comment_author_email = %s ", wp_unslash( $comment_author_email ) );
689      $dupe .= $wpdb->prepare( ") AND comment_content = %s LIMIT 1", wp_unslash( $comment_content ) );
690      if ( $wpdb->get_var($dupe) ) {
691           do_action( 'comment_duplicate_trigger', $commentdata );
692           if ( defined('DOING_AJAX') )
693                die( __('Duplicate comment detected; it looks as though you’ve already said that!') );
694
695           wp_die( __('Duplicate comment detected; it looks as though you’ve already said that!') );
696      }
697
698      do_action( 'check_comment_flood', $comment_author_IP, $comment_author_email, $comment_date_gmt );
699
700      if ( ! empty( $user_id ) ) {