WP hooks navigation: Home/browse • Actions index • Filters index
To save our bandwidth, we show only a snippet of code around each occurence of the hook. View complete file in SVN (without highlighting).
The best way to understand what a hook does is to look at where it occurs in the source code.
do_action( "hook_name" )apply_filters( "hook_name", "what_to_filter" ).Remember, this hook may occur in more than one file. Moreover, the hook's context may change from version to version.
This hook occurs 5 times in this file.
| Line | Code |
|---|---|
| 446 | // if the response is neither true nor false, hold the comment for moderation and schedule a recheck |
| 447 | if ( 'true' != $response[1] && 'false' != $response[1] ) { |
| 448 | if ( ! current_user_can( 'moderate_comments' ) ) { |
| 449 | // Comment status should be moderated |
| 450 | self::$last_comment_result = '0'; |
| 451 | } |
| 452 | |
| 453 | if ( ! wp_next_scheduled( 'akismet_schedule_cron_recheck' ) ) { |
| 454 | wp_schedule_single_event( time() + 1200, 'akismet_schedule_cron_recheck' ); |
| 455 | do_action( 'akismet_scheduled_recheck', 'invalid-response-' . $response[1] ); |
| 456 | } |
| 457 | |
| 458 | self::$prevent_moderation_email_for_these_comments[] = $commentdata; |
| 459 | } |
| 460 | |
| 461 | // Delete old comments daily |
| 462 | if ( ! wp_next_scheduled( 'akismet_scheduled_delete' ) ) { |
| 463 | wp_schedule_event( time(), 'daily', 'akismet_scheduled_delete' ); |
| 464 | } |
| Line | Code |
| 1099 | public static function cron_recheck() { |
| 1100 | global $wpdb; |
| 1101 | |
| 1102 | $api_key = self::get_api_key(); |
| 1103 | |
| 1104 | $status = self::verify_key( $api_key ); |
| 1105 | if ( get_option( 'akismet_alert_code' ) || $status == 'invalid' ) { |
| 1106 | // since there is currently a problem with the key, reschedule a check for 6 hours hence |
| 1107 | wp_schedule_single_event( time() + 21600, 'akismet_schedule_cron_recheck' ); |
| 1108 | do_action( 'akismet_scheduled_recheck', 'key-problem-' . get_option( 'akismet_alert_code' ) . '-' . $status ); |
| 1109 | return false; |
| 1110 | } |
| 1111 | |
| 1112 | delete_option( 'akismet_available_servers' ); |
| 1113 | |
| 1114 | $comment_errors = $wpdb->get_col( "SELECT comment_id FROM {$wpdb->commentmeta} WHERE meta_key = 'akismet_error' LIMIT 100" ); |
| 1115 | |
| 1116 | load_plugin_textdomain( 'akismet' ); |
| 1117 | |
| Line | Code |
| 1167 | // If this comment has been pending moderation for longer than MAX_DELAY_BEFORE_MODERATION_EMAIL, |
| 1168 | // send a moderation email now. |
| 1169 | if ( ( intval( gmdate( 'U' ) ) - strtotime( $comment->comment_date_gmt ) ) < self::MAX_DELAY_BEFORE_MODERATION_EMAIL ) { |
| 1170 | delete_comment_meta( $comment_id, 'akismet_delayed_moderation_email' ); |
| 1171 | wp_notify_moderator( $comment_id ); |
| 1172 | } |
| 1173 | |
| 1174 | delete_comment_meta( $comment_id, 'akismet_rechecking' ); |
| 1175 | wp_schedule_single_event( time() + 1200, 'akismet_schedule_cron_recheck' ); |
| 1176 | do_action( 'akismet_scheduled_recheck', 'check-db-comment-' . $status ); |
| 1177 | return; |
| 1178 | } |
| 1179 | delete_comment_meta( $comment_id, 'akismet_rechecking' ); |
| 1180 | } |
| 1181 | |
| 1182 | $remaining = $wpdb->get_var( "SELECT COUNT(*) FROM {$wpdb->commentmeta} WHERE meta_key = 'akismet_error'" ); |
| 1183 | if ( $remaining && ! wp_next_scheduled( 'akismet_schedule_cron_recheck' ) ) { |
| 1184 | wp_schedule_single_event( time() + 1200, 'akismet_schedule_cron_recheck' ); |
| 1185 | do_action( 'akismet_scheduled_recheck', 'remaining' ); |
| 1186 | } |
| 1187 | } |
| 1188 | |
| 1189 | public static function fix_scheduled_recheck() { |
| 1190 | $future_check = wp_next_scheduled( 'akismet_schedule_cron_recheck' ); |
| 1191 | if ( ! $future_check ) { |
| 1192 | return; |
| 1193 | } |
| 1194 | |
| 1195 | if ( get_option( 'akismet_alert_code' ) > 0 ) { |
| 1196 | return; |
| 1197 | } |
| 1198 | |
| 1199 | $check_range = time() + 1200; |
| 1200 | if ( $future_check > $check_range ) { |
| 1201 | wp_clear_scheduled_hook( 'akismet_schedule_cron_recheck' ); |
| 1202 | wp_schedule_single_event( time() + 300, 'akismet_schedule_cron_recheck' ); |
| 1203 | do_action( 'akismet_scheduled_recheck', 'fix-scheduled-recheck' ); |
| 1204 | } |
| 1205 | } |
| 1206 | |
| 1207 | public static function add_comment_nonce( $post_id ) { |
| 1208 | /** |
| 1209 | * To disable the Akismet comment nonce, add a filter for the 'akismet_comment_nonce' tag |
| 1210 | * and return any string value that is not 'true' or '' (empty string). |
| 1211 | * |
| 1212 | * Don't return boolean false, because that implies that the 'akismet_comment_nonce' option |