Menu Adam R Brown

WP hooks navigation: Home/browseActions indexFilters index

Source View: akismet_batch_delete_count

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

This hook occurs 3 times in this file.

Line Code
458
459                $wpdb->queries = array();
460
461                $comments = array();
462
463                foreach ( $comment_ids as $comment_id ) {
464                     $comments[ $comment_id ] = get_comment( $comment_id );
465
466                     do_action( 'delete_comment', $comment_id, $comments[ $comment_id ] );
467                     do_action( 'akismet_batch_delete_count', __FUNCTION__ );
468                }
469
470                // Prepared as strings since comment_id is an unsigned BIGINT, and using %d will constrain the value to the maximum signed BIGINT.
471                $format_string = implode( ", ", array_fill( 0, count( $comment_ids ), '%s' ) );
472
473                $wpdb->query( $wpdb->prepare( "DELETE FROM {$wpdb->comments} WHERE comment_id IN ( " . $format_string . " )", $comment_ids ) );
474                $wpdb->query( $wpdb->prepare( "DELETE FROM {$wpdb->commentmeta} WHERE comment_id IN ( " . $format_string . " )", $comment_ids ) );
475
476                foreach ( $comment_ids as $comment_id ) {
 
Line Code
500           // after $interval days regardless of the comment status
501           while ( $comment_ids = $wpdb->get_col( $wpdb->prepare( "SELECT m.comment_id FROM {$wpdb->commentmeta} as m INNER JOIN {$wpdb->comments} as c USING(comment_id) WHERE m.meta_key = 'akismet_as_submitted' AND DATE_SUB(NOW(), INTERVAL %d DAY) > c.comment_date_gmt LIMIT 10000", $interval ) ) ) {
502                if ( empty( $comment_ids ) )
503                     return;
504
505                $wpdb->queries = array();
506
507                foreach ( $comment_ids as $comment_id ) {
508                     delete_comment_meta( $comment_id, 'akismet_as_submitted' );
509                     do_action( 'akismet_batch_delete_count', __FUNCTION__ );
510                }
511
512                do_action( 'akismet_delete_commentmeta_batch', count( $comment_ids ) );
513           }
514
515           if ( apply_filters( 'akismet_optimize_table', ( mt_rand(1, 5000) == 11), $wpdb->commentmeta ) ) // lucky number
516                $wpdb->query("OPTIMIZE TABLE {$wpdb->commentmeta}");
517      }
518
 
Line Code
529                     return;
530
531                $wpdb->queries = array();
532
533                $commentmeta_deleted = 0;
534
535                foreach ( $commentmeta_results as $commentmeta ) {
536                     if ( 'akismet_' == substr( $commentmeta->meta_key, 0, 8 ) ) {
537                          delete_comment_meta( $commentmeta->comment_id, $commentmeta->meta_key );
538                          do_action( 'akismet_batch_delete_count', __FUNCTION__ );
539                          $commentmeta_deleted++;
540                     }
541
542                     $last_meta_id = $commentmeta->meta_id;
543                }
544
545                do_action( 'akismet_delete_commentmeta_batch', $commentmeta_deleted );
546
547                // If we're getting close to max_execution_time, quit for this round.