Contact Form 7 là plugin rất hữu hiệu đối với website WordPress. Tuy nhiên, điểm yếu của nó là không ngăn cản được bot spam dữ liệu gửi thông tin đến quản trị viên của website. Để hạn chế điểm yếu này nhiều đơn vị sử dụng reCAPTCHA của Google để chống Spam Contact Form 7 thế nhưng đây là giải pháp không hoàn toàn tối ưu. Lý do đó chính là ở một số hosting, cloud server yếu nó sẽ làm chậm website. Trang web sẽ phải load các tệp js từ CDN Google về web nên làm thời gian tải trang chậm lại. Chính vì vậy, hôm nay Maxweb sẽ hướng dẫn bạn cách chống Spam Contact Form 7 hiệu quả mà không cần dùng đến reCAPTCHA. Cùng tham khảo bài viết nhé.
Sử dụng Akismet để chống Spam Contact Form 7
Akismet là dịch vụ chống thư rác được cung cấp bởi Automattic. Nó được xem là cách thức tốt hiện nay để bảo vệ website của bạn khỏi spam.
Bước 1: Tải Akismet
Khi sử dụng Akismet website của bạn sẽ được cấu hình và bảo vệ toàn diện.
Để sử dụng được Akismet bạn cần có một khóa API. Trong trường hợp bạn sử dụng nó trên những blog cá nhân, bạn có thể nhận được khóa API miễn phí. Còn đối với những website thuộc công ty hoặc các website thương mại cần đăng ký trả phí.
Bước 2: Cài đặt Akismet cho Contact Form 7
Contact Form 7 gồm có 3 trường thông tin đó là: your-name
, your-email
và your-url
. Chúng ta dùng Akismet để lọc các trường thông tin này. Các bước thực hiện như sau:
Vào Form mà bạn cần lọc spam, chỉnh sửa trường thông tin giống như mẫu bên dưới và thực hiện lưu lại:
Lọc spam cho trường họ tên của người gửi:
code: [text* your-name akismet:author]
Lọc spam cho trường email của người gửi:
code: [email* your-email akismet:author_email]
Lọc spam cho trường nhập url của người gửi:
code: [url* your-url akismet:author_url]
Bước 3: Kiểm tra hiệu quả
Để kiểm tra xem bạn đã cài đặt chính xác hay chưa bạn có thể thử bằng cách: nhập “viagra-test-123” vào trường name ( akismet:author
) hoặc “akismet-guaranteed-spam@example.com” vào trường email ( akismet:author_email
). Sau khi nhập xong bạn thực hiện gửi biểu mẫu. Với những thử nghiệm này Akismet sẽ phản hồi là “spam”. Nếu nó đang hoạt động tốt, màn hình sẽ xuất hiện thông báo giống như bên dưới.
Dùng Plugin Really Simple CAPTCHA để chặn Contact Form 7
Đây cùng là phương pháp vô cùng hiệu quả để ngăn chặn email spam. Ưu điểm của cách này là nhẹ, và không làm chậm website.
Để thực hiện cách này bạn cần cài đặt và kích hoạt plugin Really Simple CAPTCHA vào trang web của bạn.
Từ trang quản trị bạn chọn → Form liên hệ → mở Contact Form 7
Thêm dòng code
Nhập mã CAPTCHA: [captchac captcha-maxweb]
[captchar captcha-maxweb 4/4]
Trong đó:
- captcha-maxweb: là id, bạn có thể tự đặt theo ý muốn của mình
- 4/4: là tùy chọn tạo captcha
Để kiểm tra kết quả, bạn mở trang contact sẽ thấy sự xuất hiện của ô yêu cầu nhập CAPTCHA ở form contact. Khi điền đúng CAPTCHA thì form mới có thể thực hiện gửi. Điều này sẽ giúp ngăn chặn các bot spam hiệu quả.
Cách chống spam số điện thoại trong Contact Form 7
Số điện thoại cũng là trường thông tin thường xuyên bị spam trong Contact Form 7. Với các bước sau đây bạn có thể validate trường số điện thoại trong Contact Form 7 đúng với các số điện thoại ở Việt Nam. Có nghĩa là SĐT phải bắt đầu bằng số 0 và gồm có 10 số.
Code yêu cầu bắt nhập đủ 10 số điện thoại
code là: [tel* your-phone minlength:10 maxlength:10]
Trong đó:
- minlength:10 là độ dài tối thiểu được cho phép trong trường này
- maxlength:1y0 là độ dài tối đa được sử dụng trong trường này
Tham khảo: Hướng dẫn cài đặt Google reCAPTCHA V2, V3
Đoạn code yêu cầu khách hàng nhập số đầu tiên bằng 0, và khớp với đầu số của các nhà mạng
Để có thể validate số điện thoại trong Contact Form 7 bạn cần thêm đoạn code sau vào file functions.php
của theme hoặc child theme của website. Kiểm tra các đầu số của các nhà bạn và nhập đúng sau đó submit.
//validate số điện thoại trong Contact Form 7
function validate_phone_wpcf7( $result, $tel ){
$result = preg_match( '/^(09|03|07|08|05)+([0-9]{8})$/', $tel );
return $result;
}
add_filter( 'wpcf7_is_tel', 'validate_phone_wpcf7', 10, 2 );
Đoạn code đầy đủ
function validate_phone_wpcf7( $result, $tel ) {
$result = preg_match( '/^(032|033|034|035|036|037|038|039|086|096|097|098|081|082|083|084|085|088|091|094|056|058|092|070|076|077|078|079|089|090|093|099|059)+([0-9]{7})$/;', $tel );
return $result;
}
add_filter( 'wpcf7_is_tel', 'validate_phone_wpcf7', 10, 2 );
Trên đây là tổng hợp các cách giúp bạn có thể block spam contact form 7 hiệu quả nhất hiện nay. Các bạn hoàn toàn có thể áp dụng dễ dàng cho website của mình.
Ngoài ra, để website của bạn tránh được những cuộc spam bạn có thể lựa chọn dịch vụ thiết kế web tại Maxweb. Mỗi website chúng tôi đều sẽ tích hợp sẵn những công cụ ngăn chặn spam để website có thể hoạt động tối ưu nhất.
Thông tin liên hệ:
- Website: maxweb.vn
- Hotline: 0936.387.929
- Email: info@maxweb.vn