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
293           // if the response is neither true nor false, hold the comment for moderation and schedule a recheck
294           if ( 'true' != $response[1] && 'false' != $response[1] ) {
295                if ( !current_user_can('moderate_comments') ) {
296                     // Comment status should be moderated
297                     self::$last_comment_result = '0';
298                }
299
300                if ( ! wp_next_scheduled( 'akismet_schedule_cron_recheck' ) ) {
301                     wp_schedule_single_event( time() + 1200, 'akismet_schedule_cron_recheck' );
302                     do_action( 'akismet_scheduled_recheck', 'invalid-response-' . $response[1] );
303                }
304
305                self::$prevent_moderation_email_for_these_comments[] = $commentdata;
306           }
307
308           // Delete old comments daily
309           if ( ! wp_next_scheduled( 'akismet_scheduled_delete' ) ) {
310                wp_schedule_event( time(), 'daily', 'akismet_scheduled_delete' );
311           }
 
Line Code
896      public static function cron_recheck() {
897           global $wpdb;
898
899           $api_key = self::get_api_key();
900
901           $status = self::verify_key( $api_key );
902           if ( get_option( 'akismet_alert_code' ) || $status == 'invalid' ) {
903                // since there is currently a problem with the key, reschedule a check for 6 hours hence
904                wp_schedule_single_event( time() + 21600, 'akismet_schedule_cron_recheck' );
905                do_action( 'akismet_scheduled_recheck', 'key-problem-' . get_option( 'akismet_alert_code' ) . '-' . $status );
906                return false;
907           }
908
909           delete_option('akismet_available_servers');
910
911           $comment_errors = $wpdb->get_col( "SELECT comment_id FROM {$wpdb->commentmeta} WHERE meta_key = 'akismet_error'     LIMIT 100" );
912           
913           load_plugin_textdomain( 'akismet' );
914
 
Line Code
963                     // If this comment has been pending moderation for longer than MAX_DELAY_BEFORE_MODERATION_EMAIL,
964                     // send a moderation email now.
965                     if ( ( intval( gmdate( 'U' ) ) - strtotime( $comment->comment_date_gmt ) ) < self::MAX_DELAY_BEFORE_MODERATION_EMAIL ) {
966                          delete_comment_meta( $comment_id, 'akismet_delayed_moderation_email' );
967                          wp_notify_moderator( $comment_id );
968                     }
969
970                     delete_comment_meta( $comment_id, 'akismet_rechecking' );
971                     wp_schedule_single_event( time() + 1200, 'akismet_schedule_cron_recheck' );
972                     do_action( 'akismet_scheduled_recheck', 'check-db-comment-' . $status );
973                     return;
974                }
975                delete_comment_meta( $comment_id, 'akismet_rechecking' );
976           }
977
978           $remaining = $wpdb->get_var( "SELECT COUNT(*) FROM {$wpdb->commentmeta} WHERE meta_key = 'akismet_error'" );
979           if ( $remaining && !wp_next_scheduled('akismet_schedule_cron_recheck') ) {
980                wp_schedule_single_event( time() + 1200, 'akismet_schedule_cron_recheck' );
981                do_action( 'akismet_scheduled_recheck', 'remaining' );
982           }
983      }
984
985      public static function fix_scheduled_recheck() {
986           $future_check = wp_next_scheduled( 'akismet_schedule_cron_recheck' );
987           if ( !$future_check ) {
988                return;
989           }
990
991           if ( get_option( 'akismet_alert_code' ) > 0 ) {
992                return;
993           }
994
995           $check_range = time() + 1200;
996           if ( $future_check > $check_range ) {
997                wp_clear_scheduled_hook( 'akismet_schedule_cron_recheck' );
998                wp_schedule_single_event( time() + 300, 'akismet_schedule_cron_recheck' );
999                do_action( 'akismet_scheduled_recheck', 'fix-scheduled-recheck' );
1000           }
1001      }
1002
1003      public static function add_comment_nonce( $post_id ) {
1004           /**
1005            * To disable the Akismet comment nonce, add a filter for the 'akismet_comment_nonce' tag
1006            * and return any string value that is not 'true' or '' (empty string).
1007            *
1008            * Don't return boolean false, because that implies that the 'akismet_comment_nonce' option