Menu Adam R Brown

WP hooks navigation: Home/browseActions indexFilters index

Source View: akismet_scheduled_recheck

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 5 times in this file.

Line Code
158           // if the response is neither true nor false, hold the comment for moderation and schedule a recheck
159           if ( 'true' != $response[1] && 'false' != $response[1] ) {
160                if ( !current_user_can('moderate_comments') ) {
161                     // Comment status should be moderated
162                     self::$last_comment_result = '0';
163                }
164                if ( function_exists('wp_next_scheduled') && function_exists('wp_schedule_single_event') ) {
165                     if ( !wp_next_scheduled( 'akismet_schedule_cron_recheck' ) ) {
166                          wp_schedule_single_event( time() + 1200, 'akismet_schedule_cron_recheck' );
167                          do_action( 'akismet_scheduled_recheck', 'invalid-response-' . $response[1] );
168                     }
169                }
170
171                self::$prevent_moderation_email_for_these_comments[] = $commentdata;
172           }
173
174           if ( function_exists('wp_next_scheduled') && function_exists('wp_schedule_event') ) {
175                // WP 2.1+: delete old comments daily
176                if ( !wp_next_scheduled( 'akismet_scheduled_delete' ) )
 
Line Code
545      public static function cron_recheck() {
546           global $wpdb;
547
548           $api_key = self::get_api_key();
549
550           $status = self::verify_key( $api_key );
551           if ( get_option( 'akismet_alert_code' ) || $status == 'invalid' ) {
552                // since there is currently a problem with the key, reschedule a check for 6 hours hence
553                wp_schedule_single_event( time() + 21600, 'akismet_schedule_cron_recheck' );
554                do_action( 'akismet_scheduled_recheck', 'key-problem-' . get_option( 'akismet_alert_code' ) . '-' . $status );
555                return false;
556           }
557
558           delete_option('akismet_available_servers');
559
560           $comment_errors = $wpdb->get_col( "SELECT comment_id FROM {$wpdb->commentmeta} WHERE meta_key = 'akismet_error'     LIMIT 100" );
561           
562           load_plugin_textdomain( 'akismet' );
563
 
Line Code
607                     // If this comment has been pending moderation for longer than MAX_DELAY_BEFORE_MODERATION_EMAIL,
608                     // send a moderation email now.
609                     if ( ( intval( gmdate( 'U' ) ) - strtotime( $comment->comment_date_gmt ) ) < self::MAX_DELAY_BEFORE_MODERATION_EMAIL ) {
610                          delete_comment_meta( $comment_id, 'akismet_delayed_moderation_email' );
611                          wp_notify_moderator( $comment_id );
612                     }
613
614                     delete_comment_meta( $comment_id, 'akismet_rechecking' );
615                     wp_schedule_single_event( time() + 1200, 'akismet_schedule_cron_recheck' );
616                     do_action( 'akismet_scheduled_recheck', 'check-db-comment-' . $status );
617                     return;
618                }
619                delete_comment_meta( $comment_id, 'akismet_rechecking' );
620           }
621
622           $remaining = $wpdb->get_var( "SELECT COUNT(*) FROM {$wpdb->commentmeta} WHERE meta_key = 'akismet_error'" );
623           if ( $remaining && !wp_next_scheduled('akismet_schedule_cron_recheck') ) {
624                wp_schedule_single_event( time() + 1200, 'akismet_schedule_cron_recheck' );
625                do_action( 'akismet_scheduled_recheck', 'remaining' );
626           }
627      }
628
629      public static function fix_scheduled_recheck() {
630           $future_check = wp_next_scheduled( 'akismet_schedule_cron_recheck' );
631           if ( !$future_check ) {
632                return;
633           }
634
635           if ( get_option( 'akismet_alert_code' ) > 0 ) {
636                return;
637           }
638
639           $check_range = time() + 1200;
640           if ( $future_check > $check_range ) {
641                wp_clear_scheduled_hook( 'akismet_schedule_cron_recheck' );
642                wp_schedule_single_event( time() + 300, 'akismet_schedule_cron_recheck' );
643                do_action( 'akismet_scheduled_recheck', 'fix-scheduled-recheck' );
644           }
645      }
646
647      public static function add_comment_nonce( $post_id ) {
648           echo '<p style="display: none;">';
649           wp_nonce_field( 'akismet_comment_nonce_' . $post_id, 'akismet_comment_nonce', FALSE );
650           echo '</p>';
651      }
652