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
446           // if the response is neither true nor false, hold the comment for moderation and schedule a recheck
447           if ( 'true' != $response[1] && 'false' != $response[1] ) {
448                if ( ! current_user_can( 'moderate_comments' ) ) {
449                     // Comment status should be moderated
450                     self::$last_comment_result = '0';
451                }
452
453                if ( ! wp_next_scheduled( 'akismet_schedule_cron_recheck' ) ) {
454                     wp_schedule_single_event( time() + 1200, 'akismet_schedule_cron_recheck' );
455                     do_action( 'akismet_scheduled_recheck', 'invalid-response-' . $response[1] );
456                }
457
458                self::$prevent_moderation_email_for_these_comments[] = $commentdata;
459           }
460
461           // Delete old comments daily
462           if ( ! wp_next_scheduled( 'akismet_scheduled_delete' ) ) {
463                wp_schedule_event( time(), 'daily', 'akismet_scheduled_delete' );
464           }
 
Line Code
1099      public static function cron_recheck() {
1100           global $wpdb;
1101
1102           $api_key = self::get_api_key();
1103
1104           $status = self::verify_key( $api_key );
1105           if ( get_option( 'akismet_alert_code' ) || $status == 'invalid' ) {
1106                // since there is currently a problem with the key, reschedule a check for 6 hours hence
1107                wp_schedule_single_event( time() + 21600, 'akismet_schedule_cron_recheck' );
1108                do_action( 'akismet_scheduled_recheck', 'key-problem-' . get_option( 'akismet_alert_code' ) . '-' . $status );
1109                return false;
1110           }
1111
1112           delete_option( 'akismet_available_servers' );
1113
1114           $comment_errors = $wpdb->get_col( "SELECT comment_id FROM {$wpdb->commentmeta} WHERE meta_key = 'akismet_error'     LIMIT 100" );
1115
1116           load_plugin_textdomain( 'akismet' );
1117
 
Line Code
1167                     // If this comment has been pending moderation for longer than MAX_DELAY_BEFORE_MODERATION_EMAIL,
1168                     // send a moderation email now.
1169                     if ( ( intval( gmdate( 'U' ) ) - strtotime( $comment->comment_date_gmt ) ) < self::MAX_DELAY_BEFORE_MODERATION_EMAIL ) {
1170                          delete_comment_meta( $comment_id, 'akismet_delayed_moderation_email' );
1171                          wp_notify_moderator( $comment_id );
1172                     }
1173
1174                     delete_comment_meta( $comment_id, 'akismet_rechecking' );
1175                     wp_schedule_single_event( time() + 1200, 'akismet_schedule_cron_recheck' );
1176                     do_action( 'akismet_scheduled_recheck', 'check-db-comment-' . $status );
1177                     return;
1178                }
1179                delete_comment_meta( $comment_id, 'akismet_rechecking' );
1180           }
1181
1182           $remaining = $wpdb->get_var( "SELECT COUNT(*) FROM {$wpdb->commentmeta} WHERE meta_key = 'akismet_error'" );
1183           if ( $remaining && ! wp_next_scheduled( 'akismet_schedule_cron_recheck' ) ) {
1184                wp_schedule_single_event( time() + 1200, 'akismet_schedule_cron_recheck' );
1185                do_action( 'akismet_scheduled_recheck', 'remaining' );
1186           }
1187      }
1188
1189      public static function fix_scheduled_recheck() {
1190           $future_check = wp_next_scheduled( 'akismet_schedule_cron_recheck' );
1191           if ( ! $future_check ) {
1192                return;
1193           }
1194
1195           if ( get_option( 'akismet_alert_code' ) > 0 ) {
1196                return;
1197           }
1198
1199           $check_range = time() + 1200;
1200           if ( $future_check > $check_range ) {
1201                wp_clear_scheduled_hook( 'akismet_schedule_cron_recheck' );
1202                wp_schedule_single_event( time() + 300, 'akismet_schedule_cron_recheck' );
1203                do_action( 'akismet_scheduled_recheck', 'fix-scheduled-recheck' );
1204           }
1205      }
1206
1207      public static function add_comment_nonce( $post_id ) {
1208           /**
1209            * To disable the Akismet comment nonce, add a filter for the 'akismet_comment_nonce' tag
1210            * and return any string value that is not 'true' or '' (empty string).
1211            *
1212            * Don't return boolean false, because that implies that the 'akismet_comment_nonce' option