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
389           // if the response is neither true nor false, hold the comment for moderation and schedule a recheck
390           if ( 'true' != $response[1] && 'false' != $response[1] ) {
391                if ( !current_user_can('moderate_comments') ) {
392                     // Comment status should be moderated
393                     self::$last_comment_result = '0';
394                }
395
396                if ( ! wp_next_scheduled( 'akismet_schedule_cron_recheck' ) ) {
397                     wp_schedule_single_event( time() + 1200, 'akismet_schedule_cron_recheck' );
398                     do_action( 'akismet_scheduled_recheck', 'invalid-response-' . $response[1] );
399                }
400
401                self::$prevent_moderation_email_for_these_comments[] = $commentdata;
402           }
403
404           // Delete old comments daily
405           if ( ! wp_next_scheduled( 'akismet_scheduled_delete' ) ) {
406                wp_schedule_event( time(), 'daily', 'akismet_scheduled_delete' );
407           }
 
Line Code
1052      public static function cron_recheck() {
1053           global $wpdb;
1054
1055           $api_key = self::get_api_key();
1056
1057           $status = self::verify_key( $api_key );
1058           if ( get_option( 'akismet_alert_code' ) || $status == 'invalid' ) {
1059                // since there is currently a problem with the key, reschedule a check for 6 hours hence
1060                wp_schedule_single_event( time() + 21600, 'akismet_schedule_cron_recheck' );
1061                do_action( 'akismet_scheduled_recheck', 'key-problem-' . get_option( 'akismet_alert_code' ) . '-' . $status );
1062                return false;
1063           }
1064
1065           delete_option('akismet_available_servers');
1066
1067           $comment_errors = $wpdb->get_col( "SELECT comment_id FROM {$wpdb->commentmeta} WHERE meta_key = 'akismet_error'     LIMIT 100" );
1068           
1069           load_plugin_textdomain( 'akismet' );
1070
 
Line Code
1119                     // If this comment has been pending moderation for longer than MAX_DELAY_BEFORE_MODERATION_EMAIL,
1120                     // send a moderation email now.
1121                     if ( ( intval( gmdate( 'U' ) ) - strtotime( $comment->comment_date_gmt ) ) < self::MAX_DELAY_BEFORE_MODERATION_EMAIL ) {
1122                          delete_comment_meta( $comment_id, 'akismet_delayed_moderation_email' );
1123                          wp_notify_moderator( $comment_id );
1124                     }
1125
1126                     delete_comment_meta( $comment_id, 'akismet_rechecking' );
1127                     wp_schedule_single_event( time() + 1200, 'akismet_schedule_cron_recheck' );
1128                     do_action( 'akismet_scheduled_recheck', 'check-db-comment-' . $status );
1129                     return;
1130                }
1131                delete_comment_meta( $comment_id, 'akismet_rechecking' );
1132           }
1133
1134           $remaining = $wpdb->get_var( "SELECT COUNT(*) FROM {$wpdb->commentmeta} WHERE meta_key = 'akismet_error'" );
1135           if ( $remaining && !wp_next_scheduled('akismet_schedule_cron_recheck') ) {
1136                wp_schedule_single_event( time() + 1200, 'akismet_schedule_cron_recheck' );
1137                do_action( 'akismet_scheduled_recheck', 'remaining' );
1138           }
1139      }
1140
1141      public static function fix_scheduled_recheck() {
1142           $future_check = wp_next_scheduled( 'akismet_schedule_cron_recheck' );
1143           if ( !$future_check ) {
1144                return;
1145           }
1146
1147           if ( get_option( 'akismet_alert_code' ) > 0 ) {
1148                return;
1149           }
1150
1151           $check_range = time() + 1200;
1152           if ( $future_check > $check_range ) {
1153                wp_clear_scheduled_hook( 'akismet_schedule_cron_recheck' );
1154                wp_schedule_single_event( time() + 300, 'akismet_schedule_cron_recheck' );
1155                do_action( 'akismet_scheduled_recheck', 'fix-scheduled-recheck' );
1156           }
1157      }
1158
1159      public static function add_comment_nonce( $post_id ) {
1160           /**
1161            * To disable the Akismet comment nonce, add a filter for the 'akismet_comment_nonce' tag
1162            * and return any string value that is not 'true' or '' (empty string).
1163            *
1164            * Don't return boolean false, because that implies that the 'akismet_comment_nonce' option