wp_handle_comment_submission() – Handles the submission of a comment, usually posted to wp-comments-post.php via a comment form.
You appear to be a bot. Output may be restricted
Description
Handles the submission of a comment, usually posted to wp-comments-post.php via a comment form.
This function expects unslashed data, as opposed to functions such as wp_new_comment()
which expect slashed data.
Usage
$WP_Comment|WP_Error = wp_handle_comment_submission( $comment_data );
Parameters
- $comment_data
- ( array ) required – { Comment data.
- $comment_post_ID
- ( string|int ) required – The ID of the post that relates to the comment.
- $author
- ( string ) required – The name of the comment author.
- ( string ) required – The comment author email address.
- $url
- ( string ) required – The comment author URL.
- $comment
- ( string ) required – The content of the comment.
- $comment_parent
- ( string|int ) required – The ID of this comment's parent, if any. Default 0.
- $_wp_unfiltered_html_comment
- ( string ) required – The nonce value for allowing unfiltered HTML. }
Returns
WP_Comment|WP_Error A WP_Comment object on success, a WP_Error object on failure.
Source
File name: wordpress/wp-includes/comment.php
Lines:
function wp_handle_comment_submission( $comment_data ) { $comment_post_ID = 0; $comment_parent = 0; $user_ID = 0; $comment_author = null; $comment_author_email = null; $comment_author_url = null; $comment_content = null; if ( isset( $comment_data['comment_post_ID'] ) ) { $comment_post_ID = (int) $comment_data['comment_post_ID']; } if ( isset( $comment_data['author'] ) && is_string( $comment_data['author'] ) ) { $comment_author = trim( strip_tags( $comment_data['author'] ) ); } if ( isset( $comment_data['email'] ) && is_string( $comment_data['email'] ) ) { $comment_author_email = trim( $comment_data['email'] ); } if ( isset( $comment_data['url'] ) && is_string( $comment_data['url'] ) ) { $comment_author_url = trim( $comment_data['url'] ); } if ( isset( $comment_data['comment'] ) && is_string( $comment_data['comment'] ) ) { $comment_content = trim( $comment_data['comment'] ); } if ( isset( $comment_data['comment_parent'] ) ) { $comment_parent = absint( $comment_data['comment_parent'] ); } $post = get_post( $comment_post_ID ); if ( empty( $post->comment_status ) ) { /** * Fires when a comment is attempted on a post that does not exist. * * @since 1.5.0 * * @param int $comment_post_ID Post ID. */ do_action( 'comment_id_not_found', $comment_post_ID ); return new WP_Error( 'comment_id_not_found' ); } // get_post_status() will get the parent status for attachments. $status = get_post_status( $post ); if ( ( 'private' === $status ) && ! current_user_can( 'read_post', $comment_post_ID ) ) { return new WP_Error( 'comment_id_not_found' ); } $status_obj = get_post_status_object( $status ); if ( ! comments_open( $comment_post_ID ) ) { /** * Fires when a comment is attempted on a post that has comments closed. * * @since 1.5.0 * * @param int $comment_post_ID Post ID. */ do_action( 'comment_closed', $comment_post_ID ); return new WP_Error( 'comment_closed', __( 'Sorry, comments are closed for this item.' ), 403 ); } elseif ( 'trash' === $status ) { /** * Fires when a comment is attempted on a trashed post. * * @since 2.9.0 * * @param int $comment_post_ID Post ID. */ do_action( 'comment_on_trash', $comment_post_ID ); return new WP_Error( 'comment_on_trash' ); } elseif ( ! $status_obj->public && ! $status_obj->private ) { /** * Fires when a comment is attempted on a post in draft mode. * * @since 1.5.1 * * @param int $comment_post_ID Post ID. */ do_action( 'comment_on_draft', $comment_post_ID ); if ( current_user_can( 'read_post', $comment_post_ID ) ) { return new WP_Error( 'comment_on_draft', __( 'Sorry, comments are not allowed for this item.' ), 403 ); } else { return new WP_Error( 'comment_on_draft' ); } } elseif ( post_password_required( $comment_post_ID ) ) { /**