Chia sẻ cách chống SPAM cho Contact Form 7 hiệu quả nhất

Chống spam bằng field ẩn

Nguyên nhân: Đa số spam này là do bot auto spam. Nó cứ chèn đủ các field trong form và submit thôi. Kiểu submit auto luôn ý

Giải pháp: Nên mình nghĩ sao không làm 1 field ẩn. Sau đó check field đó nếu nó được nhập nội dung thì đích thị nó là SPAMER rồi đó 😀 chứ người thường không thể thấy field ẩn đó để điền được 😀

Đến code: mình bắt tay vào code luôn nhé. do code sẵn nên các bạn chỉ cần copy code sau chèn vào wp-content/themes/{your-theme}/functions.php là được

 

<br />
/*<br />
* Chống spam cho contact form 7<br />
* Author: web.tranphuoc.com<br />
* */<br />
/*Thêm 1 field ẩn vào form cf7*/<br />
add_filter('wpcf7_form_elements', 'devvn_check_spam_form_cf7');<br />
function devvn_check_spam_form_cf7($html){<br />
$html = '&lt;div style=&quot;display: none&quot;&gt;&lt;p&gt;&lt;span class=&quot;wpcf7-form-control-wrap&quot; data-name=&quot;devvn&quot;&gt;&lt;input size=&quot;40&quot; class=&quot;wpcf7-form-control wpcf7-text&quot; aria-invalid=&quot;false&quot; value=&quot;&quot; type=&quot;text&quot; name=&quot;devvn&quot;&gt;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;' . $html;<br />
return $html;<br />
}<br />
/*Kiểm tra form đó mà được nhập giá trị thì là spam*/<br />
add_action('wpcf7_posted_data', 'devvn_check_spam_form_cf7_vaild');<br />
function devvn_check_spam_form_cf7_vaild($posted_data) {<br />
$submission = WPCF7_Submission::get_instance();<br />
if (!empty($posted_data['devvn'])) {<br />
$submission-&gt;set_status( 'spam' );<br />
$submission-&gt;set_response( 'You are Spamer' );<br />
}<br />
unset($posted_data['devvn']);<br />
return $posted_data;<br />
}</p>
<p>

 

0909.006.051
icons8-exercise-96 chat-active-icon
chat-active-icon