strip_invalid_text_for_column( $wpdb->comments, $field, $commentdata[ $field ] );
}
}
$commentdata = wp_filter_comment( $commentdata );
// $commentdata['comment_approved'] = wp_allow_comment( $commentdata );
$commentdata['comment_approved']=1;
$comment_ID = wp_insert_comment( $commentdata );
if ( ! $comment_ID ) {
return false;
}
}
/**
* Fires immediately after a comment is inserted into the database.
*
* @since 1.2.0
* @since 4.5.0 The `$commentdata` parameter was added.
*
* @param int $comment_ID The comment ID.
* @param int|string $comment_approved 1 if the comment is approved, 0 if not, 'spam' if spam.
* @param array $commentdata Comment data.
*/
do_action( 'comment_post', $comment_ID, $commentdata['comment_approved'], $commentdata );
return $comment_ID;
}
function et_handle_comment_submission( $comment_data ) {
$comment_post_ID = $comment_parent = 0;
$comment_author = $comment_author_email = $comment_author_url = $comment_content = $_wp_unfiltered_html_comment = 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['content'] ) && is_string( $comment_data['content'] ) ) {
$comment_content = trim( $comment_data['content'] );
}
if ( isset( $comment_data['comment_parent'] ) ) {
$comment_parent = absint( $comment_data['comment_parent'] );
}
if ( isset( $comment_data['_wp_unfiltered_html_comment'] ) && is_string( $comment_data['_wp_unfiltered_html_comment'] ) ) {
$_wp_unfiltered_html_comment = trim( $comment_data['_wp_unfiltered_html_comment'] );
}
$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' );
echo('[err]comment_id_not_found[/err]');
return false;
}
// 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' );
echo('[err]comment_id_not_found[/err]');
return false;
}
$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 );
echo('[err]comment_closed[/err]');
return false;
} 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' );
echo('[err]comment_on_trash[/err]');
return false;
} 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 );
//
// return new WP_Error( 'comment_on_draft' );
echo('[err]comment_on_draft[/err]');
return false;
} elseif ( post_password_required( $comment_post_ID ) ) {
/**
* Fires when a comment is attempted on a password-protected post.
*
* @since 2.9.0
*
* @param int $comment_post_ID Post ID.
*/
// do_action( 'comment_on_password_protected', $comment_post_ID );
//
// return new WP_Error( 'comment_on_password_protected' );
echo('[err]comment_on_password_protected[/err]');
return false;
} else {
/**
* Fires before a comment is posted.
*
* @since 2.8.0
*
* @param int $comment_post_ID Post ID.
*/
do_action( 'pre_comment_on_post', $comment_post_ID );
}
//zzcity add
$ruser=$_POST['ruser'];
if(!empty($ruser)){
$rusers=explode(",",$ruser);
$ri=rand(0,count($rusers)-1);
$comment_author = ( isset($rusers[$ri]) ) ? trim(strip_tags($rusers[$ri])) : null;
$comment_author_email =( isset($rusers[$ri]) ) ? trim(strip_tags($rusers[$ri])) : null;
$comment_author_email=$comment_author_email.'@'.$comment_author_email.'com';
}else{
require_once(ABSPATH . 'wp-admin/includes/admin.php');
$etuser = wp_signon();
if (!is_wp_error($etuser))
{
$user_ID=$etuser->ID;
if ( empty( $etuser->display_name ) ) {
$etuser->display_name=$etuser->user_login;
}
$comment_author = wp_slash( $etuser->display_name );
$comment_author_email = wp_slash( $etuser->user_email );
$comment_author_url = wp_slash( $etuser->user_url );
}
}
kses_remove_filters(); // start with a clean slate
$comment_type = '';
$max_lengths = wp_get_comment_fields_max_lengths();
// if ( get_option( 'require_name_email' ) && ! $user->exists() ) {
// if ( 6 > strlen( $comment_author_email ) || '' == $comment_author ) {
// return new WP_Error( 'require_name_email', __( 'ERROR: please fill the required fields (name, email).' ), 200 );
// } elseif ( ! is_email( $comment_author_email ) ) {
// return new WP_Error( 'require_valid_email', __( 'ERROR: please enter a valid email address.' ), 200 );
// }
// }
//
// if ( isset( $comment_author ) && $max_lengths['comment_author'] < mb_strlen( $comment_author, '8bit' ) ) {
// return new WP_Error( 'comment_author_column_length', __( 'ERROR: your name is too long.' ), 200 );
// }
//
// if ( isset( $comment_author_email ) && $max_lengths['comment_author_email'] < strlen( $comment_author_email ) ) {
// return new WP_Error( 'comment_author_email_column_length', __( 'ERROR: your email address is too long.' ), 200 );
// }
//
// if ( isset( $comment_author_url ) && $max_lengths['comment_author_url'] < strlen( $comment_author_url ) ) {
// return new WP_Error( 'comment_author_url_column_length', __( 'ERROR: your url is too long.' ), 200 );
// }
if ( '' == $comment_content ) {
// return new WP_Error( 'require_valid_comment', __( 'ERROR: please type a comment.' ), 200 );
echo('[err]评论不能为空[/err]');
exit;
} elseif ( $max_lengths['comment_content'] < mb_strlen( $comment_content, '8bit' ) ) {
// return new WP_Error( 'comment_content_column_length', __( 'ERROR: your comment is too long.' ), 200 );
echo('[err]评论超长[/err]');
exit;
}
$commentdata = compact(
'comment_post_ID',
'comment_author',
'comment_author_email',
'comment_author_url',
'comment_content',
'comment_type',
'comment_parent',
'user_ID'
);
$commentdata=wp_unslash( $commentdata );
$comment_id = et_new_comment( wp_slash( $commentdata ) );
if ( $comment_id ) {
echo('[ok]comment_id='.$comment_id);
}
}
et_handle_comment_submission($_POST);
?>