*/
if ( 'POST' != $_SERVER['REQUEST_METHOD'] ) {
+ $protocol = $_SERVER['SERVER_PROTOCOL'];
+ if ( ! in_array( $protocol, array( 'HTTP/1.1', 'HTTP/2', 'HTTP/2.0' ) ) ) {
+ $protocol = 'HTTP/1.0';
+ }
+
header('Allow: POST');
- header('HTTP/1.1 405 Method Not Allowed');
+ header("$protocol 405 Method Not Allowed");
header('Content-Type: text/plain');
exit;
}
$comment = wp_handle_comment_submission( wp_unslash( $_POST ) );
if ( is_wp_error( $comment ) ) {
- $data = $comment->get_error_data();
+ $data = intval( $comment->get_error_data() );
if ( ! empty( $data ) ) {
- wp_die( $comment->get_error_message(), $data );
+ wp_die( '<p>' . $comment->get_error_message() . '</p>', __( 'Comment Submission Failure' ), array( 'response' => $data, 'back_link' => true ) );
} else {
exit;
}
$location = empty( $_POST['redirect_to'] ) ? get_comment_link( $comment ) : $_POST['redirect_to'] . '#comment-' . $comment->comment_ID;
/**
- * Filter the location URI to send the commenter after posting.
+ * Filters the location URI to send the commenter after posting.
*
* @since 2.0.5
*