Spam protection, AntiSpam, FireWall by CleanTalk - Version 5.23

Version Description

2015-09-01 = * Fixed BuddyPress profile search false positivities of anti-spam protection. * Some interface fixes of bulk users & comments spam checking

Download this release

Release Info

Developer shagimuratov
Plugin Icon 128x128 Spam protection, AntiSpam, FireWall by CleanTalk
Version 5.23
Comparing to
See all releases

Code changes from version 5.22 to 5.23

cleantalk-admin.php CHANGED
@@ -275,7 +275,7 @@ else
275
  add_settings_section('cleantalk_settings_main', __($ct_plugin_name, 'cleantalk'), 'ct_section_settings_main', 'cleantalk');
276
  add_settings_section('cleantalk_settings_state', "<hr>".__('Protection is active for:', 'cleantalk'), 'ct_section_settings_state', 'cleantalk');
277
  //add_settings_section('cleantalk_settings_autodel', "<hr>", 'ct_section_settings_autodel', 'cleantalk');
278
- add_settings_section('cleantalk_settings_anti_spam', "<hr>Check existing comments and users <br /><br />$buttons_html<hr>".__('Advanced settings', 'cleantalk'), 'ct_section_settings_anti_spam', 'cleantalk');
279
  add_settings_field('cleantalk_apikey', __('Access key', 'cleantalk'), 'ct_input_apikey', 'cleantalk', 'cleantalk_settings_main');
280
  add_settings_field('cleantalk_remove_old_spam', __('Automatically delete spam comments', 'cleantalk'), 'ct_input_remove_old_spam', 'cleantalk', 'cleantalk_settings_anti_spam');
281
 
275
  add_settings_section('cleantalk_settings_main', __($ct_plugin_name, 'cleantalk'), 'ct_section_settings_main', 'cleantalk');
276
  add_settings_section('cleantalk_settings_state', "<hr>".__('Protection is active for:', 'cleantalk'), 'ct_section_settings_state', 'cleantalk');
277
  //add_settings_section('cleantalk_settings_autodel', "<hr>", 'ct_section_settings_autodel', 'cleantalk');
278
+ add_settings_section('cleantalk_settings_anti_spam', "<hr>Check existing comments and users <br /><br />$buttons_html<hr></h3><h3>".__('Advanced settings', 'cleantalk'), 'ct_section_settings_anti_spam', 'cleantalk');
279
  add_settings_field('cleantalk_apikey', __('Access key', 'cleantalk'), 'ct_input_apikey', 'cleantalk', 'cleantalk_settings_main');
280
  add_settings_field('cleantalk_remove_old_spam', __('Automatically delete spam comments', 'cleantalk'), 'ct_input_remove_old_spam', 'cleantalk', 'cleantalk_settings_anti_spam');
281
 
cleantalk-comments-checkspam.js CHANGED
@@ -10,6 +10,29 @@ String.prototype.format = String.prototype.f = function ()
10
  return args[n];
11
  });
12
  };
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
13
 
14
  function ct_clear_comments()
15
  {
@@ -157,6 +180,9 @@ jQuery("#ct_check_spam_button").click(function(){
157
  });
158
  jQuery("#ct_check_spam_button").click(function(){
159
  jQuery('#ct_checking_status').html('');
 
 
 
160
  working=true;
161
  ct_show_info();
162
  });
@@ -172,6 +198,39 @@ jQuery("#ct_delete_all").click(function(){
172
  jQuery("#ct_delete_checked").click(function(){
173
  ct_delete_checked();
174
  });
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
175
 
176
  jQuery(document).ready(function(){
177
  working=true;
10
  return args[n];
11
  });
12
  };
13
+ var close_animate=true;
14
+ function animate_comment(to,id)
15
+ {
16
+ if(close_animate)
17
+ {
18
+ if(to==0.3)
19
+ {
20
+ jQuery('#comment-'+id).fadeTo(200,to,function(){
21
+ animate_comment(1,id)
22
+ });
23
+ }
24
+ else
25
+ {
26
+ jQuery('#comment-'+id).fadeTo(200,to,function(){
27
+ animate_comment(0.3,id)
28
+ });
29
+ }
30
+ }
31
+ else
32
+ {
33
+ close_animate=true;
34
+ }
35
+ }
36
 
37
  function ct_clear_comments()
38
  {
180
  });
181
  jQuery("#ct_check_spam_button").click(function(){
182
  jQuery('#ct_checking_status').html('');
183
+ jQuery('#ct_check_comments_table').hide();
184
+ jQuery('#ct_delete_all').hide();
185
+ jQuery('#ct_delete_checked').hide();
186
  working=true;
187
  ct_show_info();
188
  });
198
  jQuery("#ct_delete_checked").click(function(){
199
  ct_delete_checked();
200
  });
201
+ jQuery(".cleantalk_comment").mouseover(function(){
202
+ id = jQuery(this).attr("data-id");
203
+ jQuery("#cleantalk_delete_"+id).show();
204
+ });
205
+ jQuery(".cleantalk_comment").mouseout(function(){
206
+ id = jQuery(this).attr("data-id");
207
+ jQuery("#cleantalk_delete_"+id).hide();
208
+ });
209
+ jQuery(".cleantalk_delete_button").click(function(){
210
+ id = jQuery(this).attr("data-id");
211
+ ids=Array();
212
+ ids[0]=id;
213
+ var data = {
214
+ 'action': 'ajax_delete_checked',
215
+ 'security': ajax_nonce,
216
+ 'ids':ids
217
+ };
218
+ jQuery.ajax({
219
+ type: "POST",
220
+ url: ajaxurl,
221
+ data: data,
222
+ success: function(msg){
223
+ close_animate=false;
224
+ jQuery("#comment-"+id).hide();
225
+ jQuery("#comment-"+id).remove();
226
+ close_animate=true;
227
+ }
228
+ });
229
+ });
230
+ jQuery(".cleantalk_delete_button").click(function(){
231
+ id = jQuery(this).attr("data-id");
232
+ animate_comment(0.3, id);
233
+ });
234
 
235
  jQuery(document).ready(function(){
236
  working=true;
cleantalk-comments.php CHANGED
@@ -15,64 +15,7 @@ function ct_show_checkspam_page()
15
  ?>
16
  <div class="wrap">
17
  <h2><?php _e("Anti-spam by CleanTalk", 'cleantalk'); ?></h2><br />
18
- <?php
19
- $args_unchecked = array(
20
- 'meta_query' => array(
21
- 'relation' => 'AND',
22
- Array(
23
- 'key' => 'ct_checked',
24
- 'value' => '1',
25
- 'compare' => 'NOT EXISTS'
26
- ),
27
- Array(
28
- 'key' => 'ct_hash',
29
- 'value' => '1',
30
- 'compare' => 'NOT EXISTS'
31
- )
32
- ),
33
- 'count'=>true
34
- );
35
- $cnt_unchecked=get_comments($args_unchecked);
36
 
37
- $args_spam = array(
38
- 'meta_query' => array(
39
- Array(
40
- 'key' => 'ct_marked_as_spam',
41
- 'compare' => 'EXISTS'
42
- )
43
- ),
44
- 'count'=>true
45
- );
46
- $cnt_spam=get_comments($args_spam);
47
- //if($cnt_unchecked>0)
48
- {
49
- ?>
50
- <button class="button" id="ct_check_spam_button"><?php _e("Find spam comments", 'cleantalk'); ?></button><br /><br />
51
- <div id="ct_info_message"><?php _e("Anti-spam by CleanTalk will check all not spam comments against blacklists database and show you senders that have spam activity on other websites. Just click 'Find spam comments' to start.", 'cleantalk'); ?>
52
- <?php
53
- if($cnt_spam>0)
54
- {
55
- print "<br />
56
- There is some differencies between blacklists database and our API mechanisms. Blacklists shows all history of spam activity, but our API (that used in spam checking) used another parameters, too: last day of activity, number of spam attacks during last days etc. This mechanisms help us to reduce number of false positivitie. So, there is nothing strange, if some emails/IPs will be not found by this checking.";
57
- }
58
- ?></div>
59
- <?php
60
- }
61
- ?>
62
- <?php
63
- if($_SERVER['REMOTE_ADDR']=='127.0.0.1')print '<button class="button" id="ct_insert_comments">Insert comments</button><br />';
64
- ?>
65
-
66
- <div id="ct_working_message" style="margin:auto;padding:3px;width:70%;border:2px dotted gray;display:none;background:#ffff99;">
67
- <?php _e("Please wait for a while. CleanTalk is checking all approved and pending comments via blacklist database at cleantalk.org. You will have option to delete found spam comments after plugin finish.", 'cleantalk'); ?>
68
- </div>
69
- <div id="ct_deleting_message" style="display:none;">
70
- <?php _e("Please wait for a while. CleanTalk is deleting spam comments. Comments left: ", 'cleantalk'); ?> <span id="cleantalk_comments_left"></span>
71
- </div>
72
- <div id="ct_done_message" <?php if($cnt_unchecked>0) print 'style="display:none"'; ?>>
73
- <?php //_e("Done. All comments tested via blacklists database, please see result bellow.", 'cleantalk');
74
- ?>
75
- </div>
76
  <h3 id="ct_checking_status" style="text-align:center;width:90%;"></h3>
77
  <?php
78
  $args_spam = array(
@@ -112,7 +55,7 @@ function ct_show_checkspam_page()
112
  <thead>
113
  <th scope="col" id="cb" class="manage-column column-cb check-column">
114
  <label class="screen-reader-text" for="cb-select-all-1">Select All</label>
115
- <input id="cb-select-all-1" type="checkbox"/>
116
  </th>
117
  <th scope="col" id="author" class="manage-column column-slug"><?php print _e('Author');?></th>
118
  <th scope="col" id="comment" class="manage-column column-comment"><?php print _x( 'Comment', 'column name' );;?></th>
@@ -123,7 +66,7 @@ function ct_show_checkspam_page()
123
  for($i=0;$i<sizeof($c_spam);$i++)
124
  {
125
  ?>
126
- <tr id="comment-<?php print $c_spam[$i]->comment_ID; ?>" class="comment even thread-even depth-1 approved">
127
  <th scope="row" class="check-column">
128
  <label class="screen-reader-text" for="cb-select-<?php print $c_spam[$i]->comment_ID; ?>">Select comment</label>
129
  <input id="cb-select-<?php print $c_spam[$i]->comment_ID; ?>" type="checkbox" name="del_comments[]" value="<?php print $c_spam[$i]->comment_ID; ?>"/>
@@ -152,10 +95,13 @@ function ct_show_checkspam_page()
152
  <p>
153
  <?php print $c_spam[$i]->comment_content; ?>
154
  </p>
 
 
 
155
  </td>
156
  <td class="response column-response">
157
- <div class="response-links">
158
- <span class="post-com-count-wrapper">
159
  <a href="http://ct_wp/wp-admin/post.php?post=<?php print $c_spam[$i]->comment_post_ID; ?>&action=edit"><?php print get_the_title($c_spam[$i]->comment_post_ID); ?></a>
160
  <br/>
161
  <a href="http://ct_wp/wp-admin/edit-comments.php?p=<?php print $c_spam[$i]->comment_post_ID; ?>" class="post-com-count">
@@ -210,11 +156,69 @@ function ct_show_checkspam_page()
210
  ?>
211
  </tbody>
212
  </table>
213
- <button class="button" id="ct_delete_all"><?php _e('Delete all content'); ?></button>
214
- <button class="button" id="ct_delete_checked"><?php _e('Delete selected', 'cleantalk'); ?></button>
215
  <?php
216
  }
217
  ?>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
218
  </div>
219
  <br /><a href="options-general.php?page=cleantalk">&laquo;<?php print __('Back to CleanTalk settings', 'cleantalk'); ?></a>
220
  <?php
15
  ?>
16
  <div class="wrap">
17
  <h2><?php _e("Anti-spam by CleanTalk", 'cleantalk'); ?></h2><br />
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
18
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
19
  <h3 id="ct_checking_status" style="text-align:center;width:90%;"></h3>
20
  <?php
21
  $args_spam = array(
55
  <thead>
56
  <th scope="col" id="cb" class="manage-column column-cb check-column">
57
  <label class="screen-reader-text" for="cb-select-all-1">Select All</label>
58
+ <input id="cb-select-all-1" type="checkbox" style="margin-top:0;"/>
59
  </th>
60
  <th scope="col" id="author" class="manage-column column-slug"><?php print _e('Author');?></th>
61
  <th scope="col" id="comment" class="manage-column column-comment"><?php print _x( 'Comment', 'column name' );;?></th>
66
  for($i=0;$i<sizeof($c_spam);$i++)
67
  {
68
  ?>
69
+ <tr id="comment-<?php print $c_spam[$i]->comment_ID; ?>" class="comment even thread-even depth-1 approved cleantalk_comment" data-id="<?php print $c_spam[$i]->comment_ID; ?>">
70
  <th scope="row" class="check-column">
71
  <label class="screen-reader-text" for="cb-select-<?php print $c_spam[$i]->comment_ID; ?>">Select comment</label>
72
  <input id="cb-select-<?php print $c_spam[$i]->comment_ID; ?>" type="checkbox" name="del_comments[]" value="<?php print $c_spam[$i]->comment_ID; ?>"/>
95
  <p>
96
  <?php print $c_spam[$i]->comment_content; ?>
97
  </p>
98
+ <div style="height:16px;">
99
+ <a href="#" class="cleantalk_delete_button" id="cleantalk_delete_<?php print $c_spam[$i]->comment_ID; ?>" data-id="<?php print $c_spam[$i]->comment_ID; ?>" style="color:#a00;display:none;" onclick="return false;">Delete</a>
100
+ </div>
101
  </td>
102
  <td class="response column-response">
103
+ <div>
104
+ <span>
105
  <a href="http://ct_wp/wp-admin/post.php?post=<?php print $c_spam[$i]->comment_post_ID; ?>&action=edit"><?php print get_the_title($c_spam[$i]->comment_post_ID); ?></a>
106
  <br/>
107
  <a href="http://ct_wp/wp-admin/edit-comments.php?p=<?php print $c_spam[$i]->comment_post_ID; ?>" class="post-com-count">
156
  ?>
157
  </tbody>
158
  </table>
159
+ <button class="button" id="ct_delete_all"><?php _e('Delete all comments from the list'); ?></button>
160
+ <button class="button" id="ct_delete_checked"><?php _e('Delete selected', 'cleantalk'); ?></button><br /><br />
161
  <?php
162
  }
163
  ?>
164
+ <?php
165
+ $args_unchecked = array(
166
+ 'meta_query' => array(
167
+ 'relation' => 'AND',
168
+ Array(
169
+ 'key' => 'ct_checked',
170
+ 'value' => '1',
171
+ 'compare' => 'NOT EXISTS'
172
+ ),
173
+ Array(
174
+ 'key' => 'ct_hash',
175
+ 'value' => '1',
176
+ 'compare' => 'NOT EXISTS'
177
+ )
178
+ ),
179
+ 'count'=>true
180
+ );
181
+ $cnt_unchecked=get_comments($args_unchecked);
182
+
183
+ $args_spam = array(
184
+ 'meta_query' => array(
185
+ Array(
186
+ 'key' => 'ct_marked_as_spam',
187
+ 'compare' => 'EXISTS'
188
+ )
189
+ ),
190
+ 'count'=>true
191
+ );
192
+ $cnt_spam=get_comments($args_spam);
193
+ //if($cnt_unchecked>0)
194
+ {
195
+ ?>
196
+ <div id="ct_info_message"><?php _e("Anti-spam by CleanTalk checks all not spam comments against blacklists database and show you senders that have spam activity on other websites.", 'cleantalk'); ?>
197
+ <?php
198
+ if($cnt_spam>0)
199
+ {
200
+ print "<br />
201
+ There is some differencies between blacklists database and our API mechanisms. Blacklists shows all history of spam activity, but our API (that used in spam checking) used another parameters, too: last day of activity, number of spam attacks during last days etc. This mechanisms help us to reduce number of false positivitie. So, there is nothing strange, if some emails/IPs will be not found by this checking.";
202
+ }
203
+ ?></div>
204
+ <?php
205
+ }
206
+ ?>
207
+ <?php
208
+ if($_SERVER['REMOTE_ADDR']=='127.0.0.1')print '<button class="button" id="ct_insert_comments">Insert comments</button><br />';
209
+ ?>
210
+
211
+ <div id="ct_working_message" style="margin:auto;padding:3px;width:70%;border:2px dotted gray;display:none;background:#ffff99;">
212
+ <?php _e("Please wait for a while. CleanTalk is checking all approved and pending comments via blacklist database at cleantalk.org. You will have option to delete found spam comments after plugin finish.", 'cleantalk'); ?>
213
+ </div>
214
+ <div id="ct_deleting_message" style="display:none;">
215
+ <?php _e("Please wait for a while. CleanTalk is deleting spam comments. Comments left: ", 'cleantalk'); ?> <span id="cleantalk_comments_left"></span>
216
+ </div>
217
+ <div id="ct_done_message" <?php if($cnt_unchecked>0) print 'style="display:none"'; ?>>
218
+ <?php //_e("Done. All comments tested via blacklists database, please see result bellow.", 'cleantalk');
219
+ ?>
220
+ </div><br />
221
+ <button class="button" id="ct_check_spam_button"><?php _e("Check for spam again", 'cleantalk'); ?></button><br /><br />
222
  </div>
223
  <br /><a href="options-general.php?page=cleantalk">&laquo;<?php print __('Back to CleanTalk settings', 'cleantalk'); ?></a>
224
  <?php
cleantalk-common.php CHANGED
@@ -1,6 +1,6 @@
1
  <?php
2
 
3
- $ct_agent_version = 'wordpress-522';
4
  $ct_plugin_name = 'Anti-spam by CleanTalk';
5
  $ct_checkjs_frm = 'ct_checkjs_frm';
6
  $ct_checkjs_register_form = 'ct_checkjs_register_form';
@@ -647,7 +647,7 @@ $ct_check_post_result=false;
647
  function ct_check_array_keys_loop($key)
648
  {
649
  global $ct_check_post_result;
650
- $strict=Array('pass','login','pwd');
651
  for($i=0;$i<sizeof($strict);$i++)
652
  {
653
  if(stripos($key,$strict[$i])!==false)
@@ -694,4 +694,4 @@ function check_url_exclusions()
694
  }
695
  return $result;
696
  }
697
- ?>
1
  <?php
2
 
3
+ $ct_agent_version = 'wordpress-523';
4
  $ct_plugin_name = 'Anti-spam by CleanTalk';
5
  $ct_checkjs_frm = 'ct_checkjs_frm';
6
  $ct_checkjs_register_form = 'ct_checkjs_register_form';
647
  function ct_check_array_keys_loop($key)
648
  {
649
  global $ct_check_post_result;
650
+ $strict=Array('pass','login','pwd','members_search_submit');
651
  for($i=0;$i<sizeof($strict);$i++)
652
  {
653
  if(stripos($key,$strict[$i])!==false)
694
  }
695
  return $result;
696
  }
697
+ ?>
cleantalk-public.php CHANGED
@@ -1664,7 +1664,8 @@ function ct_contact_form_validate () {
1664
  strpos($_SERVER['REQUEST_URI'],'wp-login.php')!==false||
1665
  strpos($_SERVER['REQUEST_URI'],'wp-comments-post.php')!==false ||
1666
  @strpos($_SERVER['HTTP_REFERER'],'/wp-admin/')!==false ||
1667
- check_url_exclusions()
 
1668
  ) {
1669
  return null;
1670
  }
1664
  strpos($_SERVER['REQUEST_URI'],'wp-login.php')!==false||
1665
  strpos($_SERVER['REQUEST_URI'],'wp-comments-post.php')!==false ||
1666
  @strpos($_SERVER['HTTP_REFERER'],'/wp-admin/')!==false ||
1667
+ check_url_exclusions() ||
1668
+ ct_check_array_keys($_POST)
1669
  ) {
1670
  return null;
1671
  }
cleantalk-users-checkspam.js CHANGED
@@ -11,6 +11,30 @@ String.prototype.format = String.prototype.f = function ()
11
  });
12
  };
13
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
14
  function ct_clear_users()
15
  {
16
  var data = {
@@ -149,6 +173,33 @@ function ct_delete_checked_users()
149
  });
150
  return false;
151
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
152
  jQuery("#ct_check_users_button").click(function(){
153
  jQuery('#ct_working_message').show();
154
  jQuery('#ct_check_users_button').hide();
@@ -158,6 +209,9 @@ jQuery("#ct_check_users_button").click(function(){
158
  });
159
  jQuery("#ct_check_users_button").click(function(){
160
  jQuery('#ct_checking_users_status').html('');
 
 
 
161
  working=true;
162
  ct_show_users_info();
163
  });
@@ -173,6 +227,14 @@ jQuery("#ct_delete_all_users").click(function(){
173
  jQuery("#ct_delete_checked_users").click(function(){
174
  ct_delete_checked_users();
175
  });
 
 
 
 
 
 
 
 
176
 
177
  jQuery(document).ready(function(){
178
  working=true;
11
  });
12
  };
13
 
14
+ var close_animate=true;
15
+ function animate_comment(to,id)
16
+ {
17
+ if(close_animate)
18
+ {
19
+ if(to==0.3)
20
+ {
21
+ jQuery('#comment-'+id).fadeTo(200,to,function(){
22
+ animate_comment(1,id)
23
+ });
24
+ }
25
+ else
26
+ {
27
+ jQuery('#comment-'+id).fadeTo(200,to,function(){
28
+ animate_comment(0.3,id)
29
+ });
30
+ }
31
+ }
32
+ else
33
+ {
34
+ close_animate=true;
35
+ }
36
+ }
37
+
38
  function ct_clear_users()
39
  {
40
  var data = {
173
  });
174
  return false;
175
  }
176
+
177
+ jQuery(".cleantalk_delete_user_button").click(function(){
178
+ id = jQuery(this).attr("data-id");
179
+ ids=Array();
180
+ ids[0]=id;
181
+ var data = {
182
+ 'action': 'ajax_delete_checked_users',
183
+ 'security': ajax_nonce,
184
+ 'ids':ids
185
+ };
186
+ jQuery.ajax({
187
+ type: "POST",
188
+ url: ajaxurl,
189
+ data: data,
190
+ success: function(msg){
191
+ close_animate=false;
192
+ jQuery("#comment-"+id).hide();
193
+ jQuery("#comment-"+id).remove();
194
+ close_animate=true;
195
+ }
196
+ });
197
+ });
198
+ jQuery(".cleantalk_delete_user_button").click(function(){
199
+ id = jQuery(this).attr("data-id");
200
+ animate_comment(0.3, id);
201
+ });
202
+
203
  jQuery("#ct_check_users_button").click(function(){
204
  jQuery('#ct_working_message').show();
205
  jQuery('#ct_check_users_button').hide();
209
  });
210
  jQuery("#ct_check_users_button").click(function(){
211
  jQuery('#ct_checking_users_status').html('');
212
+ jQuery('#ct_check_users_table').hide();
213
+ jQuery('#ct_delete_all_users').hide();
214
+ jQuery('#ct_delete_checked_users').hide();
215
  working=true;
216
  ct_show_users_info();
217
  });
227
  jQuery("#ct_delete_checked_users").click(function(){
228
  ct_delete_checked_users();
229
  });
230
+ jQuery(".cleantalk_user").mouseover(function(){
231
+ id = jQuery(this).attr("data-id");
232
+ jQuery("#cleantalk_delete_user_"+id).show();
233
+ });
234
+ jQuery(".cleantalk_user").mouseout(function(){
235
+ id = jQuery(this).attr("data-id");
236
+ jQuery("#cleantalk_delete_user_"+id).hide();
237
+ });
238
 
239
  jQuery(document).ready(function(){
240
  working=true;
cleantalk-users.php CHANGED
@@ -44,15 +44,6 @@ function ct_show_users_page()
44
  //if($cnt_unchecked>0)
45
  {
46
  ?>
47
- <button class="button" id="ct_check_users_button"><?php _e("Find spam users", 'cleantalk'); ?></button><br /><br />
48
- <div id="ct_info_message"><?php _e("Anti-spam by CleanTalk will check all users against blacklists database and show you senders that have spam activity on other websites. Just click 'Find spam users' to start.", 'cleantalk'); ?>
49
- <?php
50
- if($cnt_spam>0)
51
- {
52
- print "<br />
53
- There is some differencies between blacklists database and our API mechanisms. Blacklists shows all history of spam activity, but our API (that used in spam checking) used another parameters, too: last day of activity, number of spam attacks during last days etc. This mechanisms help us to reduce number of false positivitie. So, there is nothing strange, if some emails/IPs will be not found by this checking.";
54
- }
55
- ?>
56
  </div>
57
  <?php
58
  }
@@ -122,7 +113,7 @@ function ct_show_users_page()
122
  for($i=0;$i<sizeof($c_spam);$i++)
123
  {
124
  ?>
125
- <tr id="comment-<?php print $c_spam[$i]->ID; ?>" class="comment even thread-even depth-1 approved">
126
  <th scope="row" class="check-column">
127
  <label class="screen-reader-text" for="cb-select-<?php print $c_spam[$i]->ID; ?>">Select user</label>
128
  <input id="cb-select-<?php print $c_spam[$i]->ID; ?>" type="checkbox" name="del_comments[]" value="<?php print $c_spam[$i]->comment_ID; ?>"/>
@@ -155,6 +146,9 @@ function ct_show_users_page()
155
  <td class="comment column-comment">
156
  <div class="submitted-on">
157
  <?php print $c_spam[$i]->data->display_name; ?>
 
 
 
158
  </div>
159
  </td>
160
  <td class="comment column-comment">
@@ -182,10 +176,9 @@ function ct_show_users_page()
182
  'compare' => 'NUMERIC'
183
  )
184
 
185
- ),
186
- 'count'=>true
187
  );
188
- $cnt_spam=get_comments($args_spam);
189
  if($cnt_spam>30)
190
  {
191
  ?>
@@ -213,11 +206,22 @@ function ct_show_users_page()
213
  ?>
214
  </tbody>
215
  </table>
216
- <button class="button" id="ct_delete_all_users"><?php _e('Delete all content'); ?></button>
217
  <button class="button" id="ct_delete_checked_users"><?php _e('Delete selected', 'cleantalk'); ?></button>
218
  <?php
219
  }
220
  ?>
 
 
 
 
 
 
 
 
 
 
 
221
  </div>
222
  <br /><a href="options-general.php?page=cleantalk">&laquo;<?php print __('Back to CleanTalk settings', 'cleantalk'); ?></a>
223
  <?php
44
  //if($cnt_unchecked>0)
45
  {
46
  ?>
 
 
 
 
 
 
 
 
 
47
  </div>
48
  <?php
49
  }
113
  for($i=0;$i<sizeof($c_spam);$i++)
114
  {
115
  ?>
116
+ <tr id="comment-<?php print $c_spam[$i]->ID; ?>" class="comment even thread-even depth-1 approved cleantalk_user" data-id="<?php print $c_spam[$i]->ID; ?>">
117
  <th scope="row" class="check-column">
118
  <label class="screen-reader-text" for="cb-select-<?php print $c_spam[$i]->ID; ?>">Select user</label>
119
  <input id="cb-select-<?php print $c_spam[$i]->ID; ?>" type="checkbox" name="del_comments[]" value="<?php print $c_spam[$i]->comment_ID; ?>"/>
146
  <td class="comment column-comment">
147
  <div class="submitted-on">
148
  <?php print $c_spam[$i]->data->display_name; ?>
149
+ <div style="height:16px;">
150
+ <a href="#" class="cleantalk_delete_user_button" id="cleantalk_delete_user_<?php print $c_spam[$i]->ID; ?>" data-id="<?php print $c_spam[$i]->ID; ?>" style="color:#a00;display:none;" onclick="return false;">Delete</a>
151
+ </div>
152
  </div>
153
  </td>
154
  <td class="comment column-comment">
176
  'compare' => 'NUMERIC'
177
  )
178
 
179
+ )
 
180
  );
181
+ $cnt_spam=sizeof(get_users($args_spam));
182
  if($cnt_spam>30)
183
  {
184
  ?>
206
  ?>
207
  </tbody>
208
  </table>
209
+ <button class="button" id="ct_delete_all_users"><?php _e('Delete all users from list'); ?></button>
210
  <button class="button" id="ct_delete_checked_users"><?php _e('Delete selected', 'cleantalk'); ?></button>
211
  <?php
212
  }
213
  ?>
214
+ <br /><br />
215
+ <div id="ct_info_message"><?php _e("Anti-spam by CleanTalk will check all users against blacklists database and show you senders that have spam activity on other websites. Just click 'Find spam users' to start.", 'cleantalk'); ?>
216
+ <?php
217
+ if($cnt_spam>0)
218
+ {
219
+ print "<br />
220
+ There is some differencies between blacklists database and our API mechanisms. Blacklists shows all history of spam activity, but our API (that used in spam checking) used another parameters, too: last day of activity, number of spam attacks during last days etc. This mechanisms help us to reduce number of false positivitie. So, there is nothing strange, if some emails/IPs will be not found by this checking.<br /><br />";
221
+ }
222
+ ?>
223
+ <button class="button" id="ct_check_users_button"><?php _e("Check for spam again", 'cleantalk'); ?></button><br /><br />
224
+
225
  </div>
226
  <br /><a href="options-general.php?page=cleantalk">&laquo;<?php print __('Back to CleanTalk settings', 'cleantalk'); ?></a>
227
  <?php
cleantalk.php CHANGED
@@ -3,11 +3,11 @@
3
  Plugin Name: Anti-spam by CleanTalk
4
  Plugin URI: http://cleantalk.org
5
  Description: Max power, all-in-one, captcha less, premium anti-spam plugin. No comment spam, no registration spam, no contact spam, protects any WordPress forms.
6
- Version: 5.22
7
  Author: СleanTalk <welcome@cleantalk.org>
8
  Author URI: http://cleantalk.org
9
  */
10
- $cleantalk_plugin_version='5.22';
11
  $cleantalk_executed=false;
12
 
13
  if(defined('CLEANTALK_AJAX_USE_BUFFER'))
@@ -298,4 +298,4 @@ if(isset($_GET['ait-action'])&&$_GET['ait-action']=='register')
298
  $_POST['redirect_to']=$tmp;
299
  }
300
 
301
- ?>
3
  Plugin Name: Anti-spam by CleanTalk
4
  Plugin URI: http://cleantalk.org
5
  Description: Max power, all-in-one, captcha less, premium anti-spam plugin. No comment spam, no registration spam, no contact spam, protects any WordPress forms.
6
+ Version: 5.23
7
  Author: СleanTalk <welcome@cleantalk.org>
8
  Author URI: http://cleantalk.org
9
  */
10
+ $cleantalk_plugin_version='5.23';
11
  $cleantalk_executed=false;
12
 
13
  if(defined('CLEANTALK_AJAX_USE_BUFFER'))
298
  $_POST['redirect_to']=$tmp;
299
  }
300
 
301
+ ?>
readme.txt CHANGED
@@ -1,9 +1,9 @@
1
  === Anti-Spam by CleanTalk - No Captcha, no comments & registrations spam ===
2
  Contributors: znaeff, shagimuratov, vlad-cleantalk
3
- Tags: anti-spam, antispam, bbpress, buddypress, captcha, capcha, captha, catcha, cf7 spam, comments, contact form spam, signup, spam, spammers, spammy, woocommerce, wordpress spam, booking, order, subscription, gravity spam, jetpack, bots, contact form 7, contact form, registrations, ninja, Fast Secure Contact, Gravity forms, formidable, mailchimp, s2member, protection, protect, email, akismet, plugin, contact, recaptcha, google captcha, math, security, login, blacklist, cache, prevent, wordpress, User Frontend, bulk delete, bulk remove, cloudflare, widget
4
  Requires at least: 3.0
5
  Tested up to: 4.3
6
- Stable tag: 5.22
7
  License: GPLv2
8
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
9
 
@@ -212,12 +212,19 @@ or
212
  define('CLEANTALK_AJAX_USE_FOOTER_HEADER', false); //false - don't use wp_footer() and wp_header() for including AJAX script, true - use it
213
 
214
  = Can i add exclusions for some pages of my site? =
215
- Yes, you can. add in you config.php file, before defining database constants, this string:
216
 
217
  $cleantalk_url_exclusions = Array('url1', 'url2', 'url3');
218
 
219
  Now, all pages containg strings 'url1', 'url2', or 'url3' will be excluded from anti-spam checking. Remember, that this option will be not applied in registrations and comment checking - they are always protected from spam.
220
 
 
 
 
 
 
 
 
221
  == Other notes ==
222
 
223
  = Troubleshooting Guide =
@@ -304,6 +311,10 @@ WordPress 3.0 at least. PHP 5 with CURL or file_get_contents() function and enab
304
  1. Setup Android/iOS app to have push notices when new legitiamte comments/registrations or contactcs appears on the website.
305
 
306
  == Changelog ==
 
 
 
 
307
  = 5.22 2015-08-26 =
308
  * Fixed possible XSS issue for anti-spam test on third-party forms.
309
 
@@ -744,6 +755,10 @@ WordPress 3.0 at least. PHP 5 with CURL or file_get_contents() function and enab
744
  * First version
745
 
746
  == Upgrade Notice ==
 
 
 
 
747
  = 5.22 2015-08-26 =
748
  * Fixed possible XSS issue for anti-spam test on third-party forms.
749
 
1
  === Anti-Spam by CleanTalk - No Captcha, no comments & registrations spam ===
2
  Contributors: znaeff, shagimuratov, vlad-cleantalk
3
+ Tags: anti-spam, antispam, bbpress, buddypress, captcha, capcha, captha, catcha, cf7 spam, comments, contact form spam, signup, spam, spammers, spammy, woocommerce, wordpress spam, booking, order, subscription, gravity spam, jetpack, bots, contact form 7, contact form, registrations, ninja, Fast Secure Contact, Gravity forms, formidable, mailchimp, s2member, protection, protect, email, akismet, plugin, contact, recaptcha, google captcha, math, security, login, blacklist, cache, prevent, wordpress, User Frontend, bulk delete, bulk remove, cloudflare, widget, cleantalk
4
  Requires at least: 3.0
5
  Tested up to: 4.3
6
+ Stable tag: 5.23
7
  License: GPLv2
8
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
9
 
212
  define('CLEANTALK_AJAX_USE_FOOTER_HEADER', false); //false - don't use wp_footer() and wp_header() for including AJAX script, true - use it
213
 
214
  = Can i add exclusions for some pages of my site? =
215
+ Yes, you can. Add in you config.php file, before defining database constants, this string:
216
 
217
  $cleantalk_url_exclusions = Array('url1', 'url2', 'url3');
218
 
219
  Now, all pages containg strings 'url1', 'url2', or 'url3' will be excluded from anti-spam checking. Remember, that this option will be not applied in registrations and comment checking - they are always protected from spam.
220
 
221
+ = Can i exclude personal data from sending to CleanTalk servers? =
222
+ Yes, you can. Add in you config.php file, before defining database constants, this string:
223
+
224
+ $cleantalk_key_exclusions = Array('key1', 'key2', 'key3');
225
+
226
+ Now, all fields in your submissions with keys named 'key1', 'key2' or 'key3' will be excluded from spam checking.
227
+
228
  == Other notes ==
229
 
230
  = Troubleshooting Guide =
311
  1. Setup Android/iOS app to have push notices when new legitiamte comments/registrations or contactcs appears on the website.
312
 
313
  == Changelog ==
314
+ = 5.23 2015-09-01 =
315
+ * Fixed BuddyPress profile search false positivities of anti-spam protection.
316
+ * Some interface fixes of bulk users & comments spam checking
317
+
318
  = 5.22 2015-08-26 =
319
  * Fixed possible XSS issue for anti-spam test on third-party forms.
320
 
755
  * First version
756
 
757
  == Upgrade Notice ==
758
+ = 5.23 2015-09-01 =
759
+ * Fixed BuddyPress profile search false positivities of anti-spam protection.
760
+ * Some interface fixes of bulk users & comments spam checking
761
+
762
  = 5.22 2015-08-26 =
763
  * Fixed possible XSS issue for anti-spam test on third-party forms.
764