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
265           // if the response is neither true nor false, hold the comment for moderation and schedule a recheck
266           if ( 'true' != $response[1] && 'false' != $response[1] ) {
267                if ( !current_user_can('moderate_comments') ) {
268                     // Comment status should be moderated
269                     self::$last_comment_result = '0';
270                }
271
272                if ( ! wp_next_scheduled( 'akismet_schedule_cron_recheck' ) ) {
273                     wp_schedule_single_event( time() + 1200, 'akismet_schedule_cron_recheck' );
274                     do_action( 'akismet_scheduled_recheck', 'invalid-response-' . $response[1] );
275                }
276
277                self::$prevent_moderation_email_for_these_comments[] = $commentdata;
278           }
279
280           // Delete old comments daily
281           if ( ! wp_next_scheduled( 'akismet_scheduled_delete' ) ) {
282                wp_schedule_event( time(), 'daily', 'akismet_scheduled_delete' );
283           }
 
Line Code
832      public static function cron_recheck() {
833           global $wpdb;
834
835           $api_key = self::get_api_key();
836
837           $status = self::verify_key( $api_key );
838           if ( get_option( 'akismet_alert_code' ) || $status == 'invalid' ) {
839                // since there is currently a problem with the key, reschedule a check for 6 hours hence
840                wp_schedule_single_event( time() + 21600, 'akismet_schedule_cron_recheck' );
841                do_action( 'akismet_scheduled_recheck', 'key-problem-' . get_option( 'akismet_alert_code' ) . '-' . $status );
842                return false;
843           }
844
845           delete_option('akismet_available_servers');
846
847           $comment_errors = $wpdb->get_col( "SELECT comment_id FROM {$wpdb->commentmeta} WHERE meta_key = 'akismet_error'     LIMIT 100" );
848           
849           load_plugin_textdomain( 'akismet' );
850
 
Line Code
899                     // If this comment has been pending moderation for longer than MAX_DELAY_BEFORE_MODERATION_EMAIL,
900                     // send a moderation email now.
901                     if ( ( intval( gmdate( 'U' ) ) - strtotime( $comment->comment_date_gmt ) ) < self::MAX_DELAY_BEFORE_MODERATION_EMAIL ) {
902                          delete_comment_meta( $comment_id, 'akismet_delayed_moderation_email' );
903                          wp_notify_moderator( $comment_id );
904                     }
905
906                     delete_comment_meta( $comment_id, 'akismet_rechecking' );
907                     wp_schedule_single_event( time() + 1200, 'akismet_schedule_cron_recheck' );
908                     do_action( 'akismet_scheduled_recheck', 'check-db-comment-' . $status );
909                     return;
910                }
911                delete_comment_meta( $comment_id, 'akismet_rechecking' );
912           }
913
914           $remaining = $wpdb->get_var( "SELECT COUNT(*) FROM {$wpdb->commentmeta} WHERE meta_key = 'akismet_error'" );
915           if ( $remaining && !wp_next_scheduled('akismet_schedule_cron_recheck') ) {
916                wp_schedule_single_event( time() + 1200, 'akismet_schedule_cron_recheck' );
917                do_action( 'akismet_scheduled_recheck', 'remaining' );
918           }
919      }
920
921      public static function fix_scheduled_recheck() {
922           $future_check = wp_next_scheduled( 'akismet_schedule_cron_recheck' );
923           if ( !$future_check ) {
924                return;
925           }
926
927           if ( get_option( 'akismet_alert_code' ) > 0 ) {
928                return;
929           }
930
931           $check_range = time() + 1200;
932           if ( $future_check > $check_range ) {
933                wp_clear_scheduled_hook( 'akismet_schedule_cron_recheck' );
934                wp_schedule_single_event( time() + 300, 'akismet_schedule_cron_recheck' );
935                do_action( 'akismet_scheduled_recheck', 'fix-scheduled-recheck' );
936           }
937      }
938
939      public static function add_comment_nonce( $post_id ) {
940           /**
941            * To disable the Akismet comment nonce, add a filter for the 'akismet_comment_nonce' tag
942            * and return any string value that is not 'true' or '' (empty string).
943            *
944            * Don't return boolean false, because that implies that the 'akismet_comment_nonce' option