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
329           // if the response is neither true nor false, hold the comment for moderation and schedule a recheck
330           if ( 'true' != $response[1] && 'false' != $response[1] ) {
331                if ( !current_user_can('moderate_comments') ) {
332                     // Comment status should be moderated
333                     self::$last_comment_result = '0';
334                }
335
336                if ( ! wp_next_scheduled( 'akismet_schedule_cron_recheck' ) ) {
337                     wp_schedule_single_event( time() + 1200, 'akismet_schedule_cron_recheck' );
338                     do_action( 'akismet_scheduled_recheck', 'invalid-response-' . $response[1] );
339                }
340
341                self::$prevent_moderation_email_for_these_comments[] = $commentdata;
342           }
343
344           // Delete old comments daily
345           if ( ! wp_next_scheduled( 'akismet_scheduled_delete' ) ) {
346                wp_schedule_event( time(), 'daily', 'akismet_scheduled_delete' );
347           }
 
Line Code
932      public static function cron_recheck() {
933           global $wpdb;
934
935           $api_key = self::get_api_key();
936
937           $status = self::verify_key( $api_key );
938           if ( get_option( 'akismet_alert_code' ) || $status == 'invalid' ) {
939                // since there is currently a problem with the key, reschedule a check for 6 hours hence
940                wp_schedule_single_event( time() + 21600, 'akismet_schedule_cron_recheck' );
941                do_action( 'akismet_scheduled_recheck', 'key-problem-' . get_option( 'akismet_alert_code' ) . '-' . $status );
942                return false;
943           }
944
945           delete_option('akismet_available_servers');
946
947           $comment_errors = $wpdb->get_col( "SELECT comment_id FROM {$wpdb->commentmeta} WHERE meta_key = 'akismet_error'     LIMIT 100" );
948           
949           load_plugin_textdomain( 'akismet' );
950
 
Line Code
999                     // If this comment has been pending moderation for longer than MAX_DELAY_BEFORE_MODERATION_EMAIL,
1000                     // send a moderation email now.
1001                     if ( ( intval( gmdate( 'U' ) ) - strtotime( $comment->comment_date_gmt ) ) < self::MAX_DELAY_BEFORE_MODERATION_EMAIL ) {
1002                          delete_comment_meta( $comment_id, 'akismet_delayed_moderation_email' );
1003                          wp_notify_moderator( $comment_id );
1004                     }
1005
1006                     delete_comment_meta( $comment_id, 'akismet_rechecking' );
1007                     wp_schedule_single_event( time() + 1200, 'akismet_schedule_cron_recheck' );
1008                     do_action( 'akismet_scheduled_recheck', 'check-db-comment-' . $status );
1009                     return;
1010                }
1011                delete_comment_meta( $comment_id, 'akismet_rechecking' );
1012           }
1013
1014           $remaining = $wpdb->get_var( "SELECT COUNT(*) FROM {$wpdb->commentmeta} WHERE meta_key = 'akismet_error'" );
1015           if ( $remaining && !wp_next_scheduled('akismet_schedule_cron_recheck') ) {
1016                wp_schedule_single_event( time() + 1200, 'akismet_schedule_cron_recheck' );
1017                do_action( 'akismet_scheduled_recheck', 'remaining' );
1018           }
1019      }
1020
1021      public static function fix_scheduled_recheck() {
1022           $future_check = wp_next_scheduled( 'akismet_schedule_cron_recheck' );
1023           if ( !$future_check ) {
1024                return;
1025           }
1026
1027           if ( get_option( 'akismet_alert_code' ) > 0 ) {
1028                return;
1029           }
1030
1031           $check_range = time() + 1200;
1032           if ( $future_check > $check_range ) {
1033                wp_clear_scheduled_hook( 'akismet_schedule_cron_recheck' );
1034                wp_schedule_single_event( time() + 300, 'akismet_schedule_cron_recheck' );
1035                do_action( 'akismet_scheduled_recheck', 'fix-scheduled-recheck' );
1036           }
1037      }
1038
1039      public static function add_comment_nonce( $post_id ) {
1040           /**
1041            * To disable the Akismet comment nonce, add a filter for the 'akismet_comment_nonce' tag
1042            * and return any string value that is not 'true' or '' (empty string).
1043            *
1044            * Don't return boolean false, because that implies that the 'akismet_comment_nonce' option