WordPress Version: 4.2
/**
* Inserts a comment to the database.
*
* The available comment data key names are 'comment_author_IP', 'comment_date',
* 'comment_date_gmt', 'comment_parent', 'comment_approved', and 'user_id'.
*
* @since 2.0.0
*
* @global wpdb $wpdb WordPress database abstraction object.
*
* @param array $commentdata Contains information on the comment.
* @return int|bool The new comment's ID on success, false on failure.
*/
function wp_insert_comment($commentdata)
{
global $wpdb;
$data = wp_unslash($commentdata);
$comment_author = (!isset($data['comment_author'])) ? '' : $data['comment_author'];
$comment_author_email = (!isset($data['comment_author_email'])) ? '' : $data['comment_author_email'];
$comment_author_url = (!isset($data['comment_author_url'])) ? '' : $data['comment_author_url'];
$comment_author_IP = (!isset($data['comment_author_IP'])) ? '' : $data['comment_author_IP'];
$comment_date = (!isset($data['comment_date'])) ? current_time('mysql') : $data['comment_date'];
$comment_date_gmt = (!isset($data['comment_date_gmt'])) ? get_gmt_from_date($comment_date) : $data['comment_date_gmt'];
$comment_post_ID = (!isset($data['comment_post_ID'])) ? '' : $data['comment_post_ID'];
$comment_content = (!isset($data['comment_content'])) ? '' : $data['comment_content'];
$comment_karma = (!isset($data['comment_karma'])) ? 0 : $data['comment_karma'];
$comment_approved = (!isset($data['comment_approved'])) ? 1 : $data['comment_approved'];
$comment_agent = (!isset($data['comment_agent'])) ? '' : $data['comment_agent'];
$comment_type = (!isset($data['comment_type'])) ? '' : $data['comment_type'];
$comment_parent = (!isset($data['comment_parent'])) ? 0 : $data['comment_parent'];
$user_id = (!isset($data['user_id'])) ? 0 : $data['user_id'];
$compacted = compact('comment_post_ID', 'comment_author', 'comment_author_email', 'comment_author_url', 'comment_author_IP', 'comment_date', 'comment_date_gmt', 'comment_content', 'comment_karma', 'comment_approved', 'comment_agent', 'comment_type', 'comment_parent', 'user_id');
if (!$wpdb->insert($wpdb->comments, $compacted)) {
$fields = array('comment_author', 'comment_author_email', 'comment_author_url', 'comment_content');
foreach ($fields as $field) {
if (isset($compacted[$field])) {
$compacted[$field] = $wpdb->strip_invalid_text_for_column($wpdb->comments, $field, $compacted[$field]);
}
}
if (!$wpdb->insert($wpdb->comments, $compacted)) {
return false;
}
}
$id = (int) $wpdb->insert_id;
if ($comment_approved == 1) {
wp_update_comment_count($comment_post_ID);
}
$comment = get_comment($id);
/**
* Fires immediately after a comment is inserted into the database.
*
* @since 2.8.0
*
* @param int $id The comment ID.
* @param obj $comment Comment object.
*/
do_action('wp_insert_comment', $id, $comment);
wp_cache_set('last_changed', microtime(), 'comment');
return $id;
}