Để tạo comment WordPress bằng Contact Form 7, bạn cần làm theo các bước sau:
Đầu tiên, bạn cần cài đặt và kích hoạt plugin Contact Form 7 nếu bạn chưa cài đặt nó. Bạn có thể tìm kiếm plugin này trong mục “Add New” của phần “Plugins” trong bảng điều khiển WordPress của bạn.
Tạo một form mới bằng cách nhấn vào “Add New” trong mục “Contact” trên thanh điều hướng của WordPress. Đặt tên cho form và thêm các trường bạn muốn hiển thị.
Trong phần “Form”, hãy chắc chắn rằng bạn đã thêm các trường cho tên, email, tiêu đề và comment. Ví dụ, form của bạn có thể nhìn như thế này:
<label> Tên
[text* your-name] </label>
<label> Email
[email* your-email] </label>
<label> Tiêu đề
[text your-subject] </label>
<label> Comment
[textarea your-comment] </label>
[submit "Gửi Comment"]
Trong phần “Mail”, bạn cần cấu hình nơi form này sẽ gửi thông tin. Thông thường, bạn sẽ muốn gửi nó đến email của admin trang web.
Sau cùng, nhấn “Save” để lưu form. Bạn sẽ nhận được một mã ngắn (shortcode) mà bạn có thể dán vào bất kỳ trang hoặc bài viết nào bạn muốn hiển thị form.
Lưu ý: Đây chỉ là cách để thu thập bình luận từ người dùng qua Contact Form 7, nó sẽ không tự động đăng những bình luận này lên WordPress. Bạn sẽ cần phải kiểm duyệt và đăng tay những bình luận này.
Để tự động đăng bình luận lên bài viết từ Contact Form 7, bạn cần kết hợp với một plugin khác là “Flamingo”. Dưới đây là các bước bạn cần làm:
- Cài đặt và kích hoạt plugin Flamingo ( LINK PLUGIN) từ “Add New” trong mục “Plugins” trên bảng điều khiển WordPress.
- Tạo một form mới trong Contact Form 7 (như đã hướng dẫn ở trên) hoặc chỉnh sửa form hiện có.
- Trong phần “Additional Settings” ở cuối form, thêm dòng sau:
on_sent_ok: "post_comment();"
Tiếp theo, bạn cần thêm đoạn mã JavaScript sau vào file functions.php của theme bạn:
function post_comment() {
?>
<script type="text/javascript">
document.addEventListener( 'wpcf7mailsent', function( event ) {
var inputs = event.detail.inputs;
var comment = {};
for ( var i = 0; i < inputs.length; i++ ) {
switch(inputs[i].name){
case "your-name":
comment.comment_author = inputs[i].value;
break;
case "your-email":
comment.comment_author_email = inputs[i].value;
break;
case "your-subject":
comment.comment_author_url = '';
break;
case "your-comment":
comment.comment_content = inputs[i].value;
break;
}
}
comment.comment_post_ID = <?php echo get_the_ID(); ?>;
comment.comment_author_IP = '<?php echo $_SERVER['REMOTE_ADDR']; ?>';
comment.comment_agent = navigator.userAgent;
comment.comment_date = new Date();
comment.comment_approved = 1;
jQuery.post('<?php echo admin_url('admin-ajax.php'); ?>', {"action": "post_comment", "comment": comment}, function(response) {});
}, false );
</script>
<?php
}
add_action('wp_footer', 'post_comment');
Cuối cùng, thêm đoạn mã sau vào file functions.php để xử lý việc tạo bình luận:
function post_comment_callback() {
$comment = wp_handle_comment_submission( wp_unslash( $_POST['comment'] ) );
if ( is_wp_error( $comment ) ) {
echo $comment->get_error_message();
die();
}
$user = wp_get_current_user();
do_action('set_comment_cookies', $comment, $user);
echo "success";
die();
}
add_action('wp_ajax_post_comment', 'post_comment_callback');
add_action('wp_ajax_nopriv_post_comment', 'post_comment_callback');