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