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 |
|---|---|
| 208 | // if the response is neither true nor false, hold the comment for moderation and schedule a recheck |
| 209 | if ( 'true' != $response[1] && 'false' != $response[1] ) { |
| 210 | if ( !current_user_can('moderate_comments') ) { |
| 211 | // Comment status should be moderated |
| 212 | self::$last_comment_result = '0'; |
| 213 | } |
| 214 | if ( function_exists('wp_next_scheduled') && function_exists('wp_schedule_single_event') ) { |
| 215 | if ( !wp_next_scheduled( 'akismet_schedule_cron_recheck' ) ) { |
| 216 | wp_schedule_single_event( time() + 1200, 'akismet_schedule_cron_recheck' ); |
| 217 | do_action( 'akismet_scheduled_recheck', 'invalid-response-' . $response[1] ); |
| 218 | } |
| 219 | } |
| 220 | |
| 221 | self::$prevent_moderation_email_for_these_comments[] = $commentdata; |
| 222 | } |
| 223 | |
| 224 | if ( function_exists('wp_next_scheduled') && function_exists('wp_schedule_event') ) { |
| 225 | // WP 2.1+: delete old comments daily |
| 226 | if ( !wp_next_scheduled( 'akismet_scheduled_delete' ) ) |
| Line | Code |
| 664 | public static function cron_recheck() { |
| 665 | global $wpdb; |
| 666 | |
| 667 | $api_key = self::get_api_key(); |
| 668 | |
| 669 | $status = self::verify_key( $api_key ); |
| 670 | if ( get_option( 'akismet_alert_code' ) || $status == 'invalid' ) { |
| 671 | // since there is currently a problem with the key, reschedule a check for 6 hours hence |
| 672 | wp_schedule_single_event( time() + 21600, 'akismet_schedule_cron_recheck' ); |
| 673 | do_action( 'akismet_scheduled_recheck', 'key-problem-' . get_option( 'akismet_alert_code' ) . '-' . $status ); |
| 674 | return false; |
| 675 | } |
| 676 | |
| 677 | delete_option('akismet_available_servers'); |
| 678 | |
| 679 | $comment_errors = $wpdb->get_col( "SELECT comment_id FROM {$wpdb->commentmeta} WHERE meta_key = 'akismet_error' LIMIT 100" ); |
| 680 | |
| 681 | load_plugin_textdomain( 'akismet' ); |
| 682 | |
| Line | Code |
| 726 | // If this comment has been pending moderation for longer than MAX_DELAY_BEFORE_MODERATION_EMAIL, |
| 727 | // send a moderation email now. |
| 728 | if ( ( intval( gmdate( 'U' ) ) - strtotime( $comment->comment_date_gmt ) ) < self::MAX_DELAY_BEFORE_MODERATION_EMAIL ) { |
| 729 | delete_comment_meta( $comment_id, 'akismet_delayed_moderation_email' ); |
| 730 | wp_notify_moderator( $comment_id ); |
| 731 | } |
| 732 | |
| 733 | delete_comment_meta( $comment_id, 'akismet_rechecking' ); |
| 734 | wp_schedule_single_event( time() + 1200, 'akismet_schedule_cron_recheck' ); |
| 735 | do_action( 'akismet_scheduled_recheck', 'check-db-comment-' . $status ); |
| 736 | return; |
| 737 | } |
| 738 | delete_comment_meta( $comment_id, 'akismet_rechecking' ); |
| 739 | } |
| 740 | |
| 741 | $remaining = $wpdb->get_var( "SELECT COUNT(*) FROM {$wpdb->commentmeta} WHERE meta_key = 'akismet_error'" ); |
| 742 | if ( $remaining && !wp_next_scheduled('akismet_schedule_cron_recheck') ) { |
| 743 | wp_schedule_single_event( time() + 1200, 'akismet_schedule_cron_recheck' ); |
| 744 | do_action( 'akismet_scheduled_recheck', 'remaining' ); |
| 745 | } |
| 746 | } |
| 747 | |
| 748 | public static function fix_scheduled_recheck() { |
| 749 | $future_check = wp_next_scheduled( 'akismet_schedule_cron_recheck' ); |
| 750 | if ( !$future_check ) { |
| 751 | return; |
| 752 | } |
| 753 | |
| 754 | if ( get_option( 'akismet_alert_code' ) > 0 ) { |
| 755 | return; |
| 756 | } |
| 757 | |
| 758 | $check_range = time() + 1200; |
| 759 | if ( $future_check > $check_range ) { |
| 760 | wp_clear_scheduled_hook( 'akismet_schedule_cron_recheck' ); |
| 761 | wp_schedule_single_event( time() + 300, 'akismet_schedule_cron_recheck' ); |
| 762 | do_action( 'akismet_scheduled_recheck', 'fix-scheduled-recheck' ); |
| 763 | } |
| 764 | } |
| 765 | |
| 766 | public static function add_comment_nonce( $post_id ) { |
| 767 | echo '<p style="display: none;">'; |
| 768 | wp_nonce_field( 'akismet_comment_nonce_' . $post_id, 'akismet_comment_nonce', FALSE ); |
| 769 | echo '</p>'; |
| 770 | } |
| 771 | |