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
246           // if the response is neither true nor false, hold the comment for moderation and schedule a recheck
247           if ( 'true' != $response[1] && 'false' != $response[1] ) {
248                if ( !current_user_can('moderate_comments') ) {
249                     // Comment status should be moderated
250                     self::$last_comment_result = '0';
251                }
252
253                if ( ! wp_next_scheduled( 'akismet_schedule_cron_recheck' ) ) {
254                     wp_schedule_single_event( time() + 1200, 'akismet_schedule_cron_recheck' );
255                     do_action( 'akismet_scheduled_recheck', 'invalid-response-' . $response[1] );
256                }
257
258                self::$prevent_moderation_email_for_these_comments[] = $commentdata;
259           }
260
261           // Delete old comments daily
262           if ( ! wp_next_scheduled( 'akismet_scheduled_delete' ) ) {
263                wp_schedule_event( time(), 'daily', 'akismet_scheduled_delete' );
264           }
 
Line Code
747      public static function cron_recheck() {
748           global $wpdb;
749
750           $api_key = self::get_api_key();
751
752           $status = self::verify_key( $api_key );
753           if ( get_option( 'akismet_alert_code' ) || $status == 'invalid' ) {
754                // since there is currently a problem with the key, reschedule a check for 6 hours hence
755                wp_schedule_single_event( time() + 21600, 'akismet_schedule_cron_recheck' );
756                do_action( 'akismet_scheduled_recheck', 'key-problem-' . get_option( 'akismet_alert_code' ) . '-' . $status );
757                return false;
758           }
759
760           delete_option('akismet_available_servers');
761
762           $comment_errors = $wpdb->get_col( "SELECT comment_id FROM {$wpdb->commentmeta} WHERE meta_key = 'akismet_error'     LIMIT 100" );
763           
764           load_plugin_textdomain( 'akismet' );
765
 
Line Code
814                     // If this comment has been pending moderation for longer than MAX_DELAY_BEFORE_MODERATION_EMAIL,
815                     // send a moderation email now.
816                     if ( ( intval( gmdate( 'U' ) ) - strtotime( $comment->comment_date_gmt ) ) < self::MAX_DELAY_BEFORE_MODERATION_EMAIL ) {
817                          delete_comment_meta( $comment_id, 'akismet_delayed_moderation_email' );
818                          wp_notify_moderator( $comment_id );
819                     }
820
821                     delete_comment_meta( $comment_id, 'akismet_rechecking' );
822                     wp_schedule_single_event( time() + 1200, 'akismet_schedule_cron_recheck' );
823                     do_action( 'akismet_scheduled_recheck', 'check-db-comment-' . $status );
824                     return;
825                }
826                delete_comment_meta( $comment_id, 'akismet_rechecking' );
827           }
828
829           $remaining = $wpdb->get_var( "SELECT COUNT(*) FROM {$wpdb->commentmeta} WHERE meta_key = 'akismet_error'" );
830           if ( $remaining && !wp_next_scheduled('akismet_schedule_cron_recheck') ) {
831                wp_schedule_single_event( time() + 1200, 'akismet_schedule_cron_recheck' );
832                do_action( 'akismet_scheduled_recheck', 'remaining' );
833           }
834      }
835
836      public static function fix_scheduled_recheck() {
837           $future_check = wp_next_scheduled( 'akismet_schedule_cron_recheck' );
838           if ( !$future_check ) {
839                return;
840           }
841
842           if ( get_option( 'akismet_alert_code' ) > 0 ) {
843                return;
844           }
845
846           $check_range = time() + 1200;
847           if ( $future_check > $check_range ) {
848                wp_clear_scheduled_hook( 'akismet_schedule_cron_recheck' );
849                wp_schedule_single_event( time() + 300, 'akismet_schedule_cron_recheck' );
850                do_action( 'akismet_scheduled_recheck', 'fix-scheduled-recheck' );
851           }
852      }
853
854      public static function add_comment_nonce( $post_id ) {
855           /**
856            * To disable the Akismet comment nonce, add a filter for the 'akismet_comment_nonce' tag
857            * and return any string value that is not 'true' or '' (empty string).
858            *
859            * Don't return boolean false, because that implies that the 'akismet_comment_nonce' option