A filter hook called by the wp_allow_comment function prior to inserting a comment into the database. The filter is applied to the proposed comment's approval status, allowing a plugin to override.
<?php function filter_handler( $approved , $commentdata ){ ...... }
add_filter( 'pre_comment_approved' , 'filter_handler' , '99', 2 ); ?>
The $commentdata array contains the same indices as the array returned by get_comments(), including:
'comment_post_ID' - The post to which the comment will apply 'comment_author' - (may be empty) 'comment_author_email' - (may be empty) 'comment_author_url' - (may be empty) 'comment_author_IP' - IP address 'comment_agent' - e.g., "Mozilla/5.0..." 'comment_content' - The text of the proposed comment 'comment_type' - 'pingback', 'trackback', or empty for regular comments 'user_ID' - (empty if not logged in)
In all cases the comment is added to the database, even spam. Comments marked as spam will never be visible on the front end. Spam comments are kept for possible analysis by plugins.
<?php
function filter_handler( $approved , $commentdata )
{
// inspect $commentdata to determine approval, disapproval, or spam status
return $approved;
}
add_filter( 'pre_comment_approved' , 'filter_handler' , '99', 2 );
?>
wp_allow_comment() handles the preliminary approval checking, and that approval status is passed through this filter before it returns.
(wp_allow_comment) Since: 2.0.0
Prior to WP 3.1, the filter was not passed $comment_data and instead was expected to use global variables such as $comment_ID to access information about the comment. (see: http://core.trac.wordpress.org/ticket/14802 )
wp_allow_comment is located in wp-includes/comment.php
.
comment_save_pre, pre_comment_approved, pre_comment_content, preprocess_comment, wp_allow_comment()